opendir LSLRT, "$dir" or die "I hate you, $dir: $!"; # rewinddir not needed @dir = readdir(LSLRT); closedir LSLRT; # why 'or die,' if we're all done anyways? for my $dirent (@dir) { next unless ( -f "$dir/$dirent" ); $mtime{$dirent} = (stat "$dir/$dirent")[9]; } my @last_five = (map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [$_, $mtime{$_} ] } keys %mtime)[-5..-1]; #### my @last_five = chomp (`ls -1 --sort=time`)[0..4]; #### opendir LSLRT, "$dir" or die "I hate you, $dir: $!"; my @files = (map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { ( -f and /^F/ ) ? [$_, (lstat $_)[9] ] : () } readdir LSLRT); closedir LSLRT; @files = @files[0..($#files > 3 ? 4 : $#files)];