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:
Or better yet, remove this part, and add it to the readdir earlier.#check each file in logs directory my @to_move; foreach my $file (@files) { next if $file =~ /^\.\.?$/; push @to_move, $file; }
A few other things:my @files = grep { -M "$log_dir/$_" > 1 && !/^\.\.?$/ } readdir(LOGS);
- Use the LIST form of system when you are able to: system "gzip", $file
- chdir to the log dir once at the start of the script instead of once for each file processed
- In the else block you use $! but there is no guarantee that it will be set to a valid value before hand. You know at that point that the file is a symbolic link, so just print that.
- Nit Pick: You seem to use 2 different indent styles, one for the foreach and another for the if (You indent the body of one, but not the other). It usually helps to be consistant.
|
---|
In Section
Seekers of Perl Wisdom