in reply to sorting an array of file names

In case you want more than first digit, I've found it useful to pad the numbers
print "$$_[0]\n" for sort { $$a[1] cmp $$b[1] } map { my $padd = $_; $padd =~ s/(\d+)/sprintf '%06d', $1/ge; [ $_ , $padd ]; } @list;
you get lexical sort and avoid 1,10,2,3,4...