With your helpful suggestions I have modified my code as follows. Better? I hope so. =]
#!/usr/bin/perl
use warnings;
use strict;
use File::Copy;
# change source backup dir, modification time, and destination backup
+dir here
my $srcdir = '/var/local/somedir';
my $mtime = '1';
my $destdir = '/backup/somedir';
die "Error:$!" unless (-d $srcdir && -d $destdir );
print "Beginning backup...\n";
chdir $srcdir;
opendir(INDIR,$srcdir) || die "Can't open directory: $!";
while ($_ = readdir(INDIR)) {
next if (-d || $_ eq "." || $_ eq "..");
if (-M > $mtime) {
print "$_ : Older than one day.\n";
} else {
system("tar -cz $_ -f $_.tar.gz");
move(<*.gz>, $destdir) && print "$_ archived in $destd
+ir\n";
}
}
closedir(INDIR);
print "Backup complete.\n";