use strict; use warnings; use 5.010; my @filelist = glob('c:\data\perl\bin\*.bat'); {local $,="\n"; say 'Unsorted', @filelist;} say; my @sorted = sort by_last_mod @filelist; {local $,="\n"; say 'Sorted', @sorted}; sub by_last_mod { my $adate = ( stat($a) )[9]; my $bdate = ( stat($b) )[9]; return $adate <=> $bdate; }