Perl: Array sortieren nach Dateinamen

Man erhält eine Liste von Dateien die "sortiert" sind. Bsp:
19_Giraffe.jpg
22_Luxmessungen.jpg
24_Agama.jpg
131_Flughafen.jpg
02_Arusha.jpg
21b_Sonne.jpg
21a_Sonnenaufgang.jpg
130_Landeanflug.jpg
So einfach ist es mit Perl etwas Ordnung zu schaffen:
foreach ( sort {&file_nr_sort}(@dir_list) ) { print $_; }

sub file_nr_sort() {
  my $ax = ($a =~ /^(\d+)(\w|)_/) ? ($1 * 1000) + ord($2) : $a;
  my $bx = ($b =~ /^(\d+)(\w|)_/) ? ($1 * 1000) + ord($2) : $b;
  $ax<=>$bx;
}