use strict; my $directory = 'c:/windows'; opendir D, $directory or die "Cannot open directory $directory: $!\n"; my %age; while( my $file = readdir D ) { next if $file eq '.' or $file eq '..'; $age{"$directory/$file"} = (stat "$directory/$file")[9]; } closedir D; my $count = 0; foreach my $file ( sort {$age{$b} <=> $age{$a}} keys %age ) { if ($count++ < 10) { print "Newest: $file (@{[scalar localtime $age{$file}]})\n"; } else { print "For Delete: $file (@{[scalar localtime $age{$file}]})\n"; # unlink $file; # uncomment at your own risk! } }