for (glob "$path/*">) { unlink if -f and -M _ > $cutoff; } #### sub unlink_all ( my ($path, $cutoff) = @_; local $_; for (glob "$path/*") { unlink, next if -f and -M _ > $cutoff; unlink_all($_, $cutoff) if -d _; } 1; }