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] }