Well... once you know which they are, I guess not (or that's another problem), but it is important to correctly define what are 'yesterday files'.
I think it would be not an decision based on file_age_in_days, but rather something like 'those files that have creation date between yesterday 00:00:00 and today 00:00:00'.
Something like below:
use strict;
use warnings;
use Date::Manip;
use File::stat;
my $yesterday = ParseDate( 'yesterday midnight' );
my $today = ParseDate( 'today midnight' );
my $yesterday_midnight = &UnixDate( $yesterday, "%s" );
my $today_midnight = &UnixDate( $today, "%s" );
my @yesterday_files = ();
foreach my $file ( <*> ) {
my $stat = stat( $file )
or die "Cannot stat file $file: $!\n";
my $creation_date = $stat->ctime;
push( @yesterday_files, $file )
if ( $creation_date < $today_midnight
and $creation_date > $yesterday_midnight );
}
foreach my $file (@yesterday_files) {
# process, copy, ...
}
|