http://qs321.pair.com?node_id=655150

logie17 has asked for the wisdom of the Perl Monks concerning the following question:

I have a list of file names such as the following:
20070911.pdf 20070918.pdf
I'm doing a regex search to pull out the year, month, day and sorting like so:
sort {$b->[3] <=> $a->[3] || $b->[1] <=> $a->[1] || $b->[2] <=> $a->[2 +]} map {$_ =~ m/(\d\d\d\d)(\d\d)(\d\d).pdf/;[$_, $1, $2, $3]} @files
However the sort is choking (not sorting numerically) since it doesn't know how to deal with numbers like 01, 02, etc. Is there anyway in my regex to include just the number suffix if it's prefixed by a 0? (otherwise if it's not prefixed by a 0 include the prefix such as 12). I was messing around with (?<=..) extension, but I wasn't getting the results I needed. Any help would be truly appreciated and I hope my question was clearly defined.

Thanks in advance.
s;;5776?12321=10609$d=9409:12100$xx;;s;(\d*);push @_,$1;eg;map{print chr(sqrt($_))."\n"} @_;