Perl has the means to do many things, though this particular
example can also be solved with the following shell command,
or bourne shell script containing this command. Be careful where
you invoke this!
# find . -type f -mtime +2 | xargs -i rm {}
In Perl, you could use the File::Find module in conjunction with the aforementioned
-M operator to accomplish the same thing as that shell command, and
much more. You should also check out the stat function, which
provides detailed inode information. Again, please be careful. This
code deletes everything under $dir.
#!/usr/bin/perl -w
use strict;
use File::Find;
my @files = ();
my @paths = ();
my $dir = '/home/kurtw/perlmonks/test5';
find(\&_filewanted, $dir);
for my $file ( @files ) {
if (unlink $file) {
print "removing $file\n";
} else {
print "could not unlink $file\n";
}
}
sub _filewanted {
if ( ((-M $_) > 2) && -f $_ ) { # files, not directories
push @files, $File::Find::name;
}
}