my @sorted = sort { property($a) <=> property($b) } @unsorted;
####
($foo, $bar, $baz, ...)
####
{ property($a) <=> property($b) }
####
([$foo, property($foo)], [$bar, property($bar)], [$baz, property($baz)], ... )
####
{ $a->[1] <=> $b->[1] }
####
my @st = map { [ $_, property($_) ] } @files;
my @sorted_st = sort { $a->[1] <=> $b->[1] } @st;
my @sorted = map { $_->[0] } @sorted_st;
sub property { ( $_[0] =~ /fwlog\.(\d+)\w+/ )[ 0 ] };
####
my @sorted =
map { $_->[0] }
sort { $a->[1] <=> $b->[1] }
map { [ $_, ( $_[0] =~ /fwlog\.(\d+)\w+/ )[ 0 ] ] }
@files;
####
sort { $a->[1] <=> $b->[1] or
$a->[2] cmp $b->[2] or
$b->[3] <=> $a->[3] }