{ my $now; sub days_ago { # days as number of seconds $now ||= time; return $now - (86400 * shift); } } for my $file ( File::Find::Rule->new ->mtime( '<' . days_ago(2) ) ->name( qr/^CGItemp\d+$/ ) ->file() ->maxdepth(1) ->in('tmp'), File::Find::Rule->new ->mtime( '<' . days_ago(14) ) ->file() ->maxdepth(1) ->in('/tmp/ep'), File::Find::Rule->new ->mtime( '<' . days_ago(30) ) ->file() ->in(qw( /var/db/ep/epdata/reports /var/db/ep/cmd/sync-log /var/db/ep/cmd/analyse-oracle/log )), ) { $body = "Old temporary files purged:\n" unless length($body); $body .= "$file " . (unlink($file) ? 'ok' : "not ok: $!") . "\n"; ++$files; }