# use File::Recurse; use Mail::Sender; use strict; use warnings; my @files; my $addresses = 'jsmith@acme.com, jdoe@acme.com'; my $from_addr = 'perlscript@fileserver.acme.com'; # Search the diretory tree for the file types specified recurse(\&Locate_Files, "E:\\data"); # delete the files &delete(); # Send an email stating which files where deleted &send_mail(); ################# # Subroutines # ################# sub Locate_Files { if ( -f $_ ) { print "Found a match: $_\n" if ( $_ =~ /\.nsf$|\.exe$/i); push (@files,"$_") if ( $_ =~ /\.nsf$|\.exe$/i); } } #end Locate_Files sub sub delete { foreach (@files){ print "Deleting the following file: $_\n"; unlink || warn "Can not delete file $_: $!\n"; } } #end delete sub sub send_email { my $sender; ref ($sender = new Mail::Sender({from => "$from_addr", smtp => "apccorp"})) or die "$Mail::Sender::Error\n"; $sender->Open({to => "$addresses", subject => "Deleted Files Report"}); $sender->SendLine; $sender->Send(<<"END"); Team, Here is the list of files that where deleted the last time the Perl script was run on the data folder: @files END $sender->Close; } #end send_email sub