http://www.perlmonks.org?node_id=627014


in reply to Sort an array which contains date formatted elements

You should transform the filenames to something that can easily be compared:

my %month = ( jan => 1, feb => 2, ... ); m/webadmin_([^_]+)_(\d+)_(\d{4})\.log/; my ($month, $day, $year) = ($1, $2, $3); my $new_filename = sprintf "%04d-%02d-%02d", $year, $month{$month}, $d +ay;

You can combine that with a Schwartzian Transform.