for (sort { (my $l = $a) =~ /fwlog\.(\d+)/; (my $r = $b) =~ /fwlog\.(\d+)/; $l <=> $r; } @files) { print "$_\n"; } #### for (map { $_->[1] } sort { $a->[0] <=> $b->[0] } map { /fwlog\.(\d+)/; [ $1, $_ ] } @files) { print "$_\n"; }