http://www.perlmonks.org?node_id=544648


in reply to moving old files

#check each file in logs directory my @to_move; foreach my $file (@files) { $file eq '.' || $file eq '..' or push @to_move, $file; }

The code in this section is a bit hard to read. A more readable way would be something like:

#check each file in logs directory my @to_move; foreach my $file (@files) { next if $file =~ /^\.\.?$/; push @to_move, $file; }
Or better yet, remove this part, and add it to the readdir earlier.
my @files = grep { -M "$log_dir/$_" > 1 && !/^\.\.?$/ } readdir(LOGS);
A few other things: