WareLogging. Some bits of PerlLanguage. Also look at PerlCompatibleRegularExpressions. = one-liners and the like = $/ = "\n"; # record separator $re = qr/whatever/; # store a RegEx # ridiculous (shouldn't cut or basename do this?), but... # in your shell - count uniquely named jpgs: find . -iname '*.jpg' | perl -n -e 's{.*/(.*$)}{$1}; print'| sort | uniq | wc -l # 'course, find can do the filename trimming by itself: find . -iname '*.jpg' -printf '%f\n'|sort|uniq|wc -l = return a date-based directory name = (Edit this page to see brackets in the proper spot, until I fix the crappy markup around here.) #!/usr/bin/perl use POSIX qw(strftime); my @t = localtime; my $dir = strftime( "%Y/%m/%e", @t ); $dir =~ s/\/[0 ]/\//g; print $dir; = dispatch table to package subs = package Whatever::Thing; my %tags = ( p => \&tag, em => \&tag, small => \&tag, strong => \&tag, table => \&tag, ); # Install appropriate subs in symbol table: for my $key (keys %tags) { *$key = sub { $tags{$key}->($key, @_) }; } sub tag { my ($tag, $text, $class) = @_; if (defined $class) { return qq{<$tag class="$class">$text}; } else { return qq{<$tag>$text}; } } # should give you '

Some stuff.

' print p(strong('Some stuff'), 'item'); = print every so many lines = #!/usr/bin/perl @lines = ; $start = 0; # array index not line - first line is 0 $skip = 7; $count = $skip; for ( @lines[$start .. $#lines] ) { print if ( $count % $skip == 0 ); $count++; } = recursive file rename = This still running in the background on about a gazillion images. Let's hope it doesn't break anything. Yes, next time I will stop being an idiot and use find(1). #!/usr/bin/perl use strict; use warnings; change("."); sub change { my ($dir) = @_; print "Trying $dir\n"; my $dh; opendir $dh, $dir; my @files = readdir $dh; closedir $dh; for my $file (@files) { next if ($file =~ m/^\.\.$/); next if ($file =~ m/^\.$/); if (-d "$dir/$file") { # recursion. change("$dir/$file"); } elsif ($file =~ m/\.jpe?g/i) { next if ($file =~ m/\.jpg$/); my $new_file = $file; $new_file =~ s/\.jpe?g/\.jpg/i; rename ("$dir/$file", "$dir/$new_file"); print "$dir/$file to: $dir/$new_file\n"; } } } = grep = $ perl %ignore = (blah => 1); @wog = qw(blah wog tog dog); @wog = grep { ! $ignore{$_} } @wog; print @wog; wogtogdog $ perl $n = 100; if ( grep { $n % $_ != 0 } (1..10) ) { print $n; } 100