foreach (@in) { my ($count, $file) = split; $file =~ s/^$in_prefix//; my ($campaign, $month, $fname) = split /\//, $file; $_ = { campaign => $campaign, month => $month, file => $fname, count => $count, sort => "$campaign:$month:$file" }; } #### my @files = map { my ($count, $file) = split; $file =~ s/^$in_prefix//; my ($campaign, $month, $fname) = split /\//, $file; { campaign => $campaign, month => $month, file => $fname, count => $count, sort => "$campaign:$month:$file" }; } @in;