in reply to Do as I say. Not as I do

Everything is a matter of taste, and reading perl is a function of how you are used to seeing perl written, but I would go for more explicit var names and just a couple comments. The code itself is failry easy to read.

foreach my $line (@data) { my ($linecount, $filename) = split(/\s+/, $line); $filename =~ s/^$in_prefix//; # strip base directory from filename my ($campaign, $month, $fname) = split('/', $filename); # info is st +ored in the directory nesting push @files, { campaign => $campaign, month => $month, file => $fname, count => $count, sort => "$campaign:$month:$file" }; }
It is a bit more verbose, and may be a bit slower because it uses explicit temporaries (instead of $_). I personally hate $_ and avoid it like the plague. I know this isn't a widely shared view.

But hey, you asked for opinions, right?

-jackdied