in reply to problems with advanced array sort

something simple:
my @sorted = sort { ($a =~ /(\d+)\D*$/)[0] <=> ($b =~ /(\d+)\D*$/)[0] } @filenames;
and something simple and fast:
use Sort::Key qw(isortkey); my @sorted = isortkey { /(\d+)\D*$/; $1 } @filenames;