PracticeDev/study_perl/tmpfile.pl

58 lines
1.1 KiB
Perl

#!/usr/bin/perl -wT
use strict;
use warnings;
use Digest::MD5;
my $DIR_PATH="/var/tmp";
my $PREFIX = "somedemotmpfile";
sub make_file {
my ($filename) = @_;
open my $fh, '>', $filename;
print {$fh} "1" . "\n";
print {$fh} "2" . "\n";
print {$fh} "3" . "\n";
close $fh;
}
sub make_tmpfile {
foreach (1..3){
my $tmpfilename = "$DIR_PATH/$PREFIX-" . Digest::MD5::md5_hex($_ . time() . $$);
make_file($tmpfilename);
}
}
sub clean_tmpfile {
opendir (my $dh, $DIR_PATH) || die "Can not open $DIR_PATH/n";
my @dots=grep { !/^\.+$/ } readdir($dh);
closedir($dh);
foreach my $file (@dots)
{
my $afile = "$DIR_PATH/$file";
my $now = time();
if (-e $afile && $afile =~ m/(^.*$PREFIX.*$)/) {
$afile = $1;
my $mtime = (stat ($afile))[9];
my $margin = $now - $mtime;
print("$afile - Last change: $mtime - now: $now - margin(s): $margin\n");
eval {
unlink $afile;
};
warn $@ if $@;
}
}
}
sub main {
make_tmpfile();
clean_tmpfile();
}
main();