if you plan a non-File::Find you'd better make your procedure a recursiv one.
my($dir) = $ARGV[0] ||'';
my($maxage) = $ARGV[1] ||0; $maxage = int $maxage;
die "Can't operate without a target directory spec. Op aborted.\n"
unless length $dir; # dir could be named "0"
die qq[No such directory "$dir"\n] unless -e $dir;
die "Need max allowed age spec for files. Op aborted.\n"
unless $maxage; # zero values and non-numeric values not accepted.
sub gothere {
my ($ddir) = @_;
$ddir=~ s|$|/|;
local *PDFDIR;
opendir(PDFDIR, $ddir) or die $!;
my(@files) = map {$ddir . $_} readdir(PDFDIR);
closedir(PDFDIR) or warn $!;
print qq[Nothing to do. No files present in "dir".\n] and exit unl
+ess @files;
foreach my $f (@files) {
next if $f =~ /^\.+$/; #don't want . ..
gothere($f) if -d $f;
if ((int(-M $f) > $maxage) && (-f _) && $f=~/\.pdf$/i)
{unlink $f or die qq[Can't unlink "$f"! $!];}
print qq[Deleted "$f"\n];
}
}
gothere($dir);
print "Done.\n\n" and exit;
warning untested.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|