Вы можете использовать преобразование Schwartzian для чтения и сортировки файлов за один шаг,
my @files =
map { $_->[0] }
sort { $a->[1] <=> $b->[1] }
map { [ $_, /(\d+)/ ] } ;
или используя менее эффективный и более простой вид,
my @files = sort { ($a =~ /(\d+)/)[0] <=> ($b =~ /(\d+)/)[0] } ;