use strict; use warnings; my ($path, $cutoff, $handle, $file, $c); $path = '/var/opt/xim/syslogs/'; $cutoff = time() - 3600*12; ### 12 hours ago $c = 0; ### Fail if you don't have read permimssions opendir ($handle, $path) || die; while ($file = readdir($handle)) { ### File name must start with pattern next if $file !~ /^Syslogd/; ### Check modified time in seconds since epoch next if (stat $file)[9] > $cutoff; ### Error if you don't have write permissions if (unlink "$path$file") { print "$file removed.\n"; $c++; } else { print "$file could not be removed.\n"; } } print "$c total files removed.\n";