use DateTime qw( );
my @months = qw( ... );
my $month_lkup = map { $months[$_] => $_+1 } 0..$#months;
my $ref_dt = DateTime->today()-subtract( days => 2 );
while (<>) {
my ($date) = /^(?:\S+\s+){3}\[([^\]]*)\]/
or next;
my ($d,$m,$y,$H,$M,$S) = $date =~ /\w+/g;
$m = $month_lkup{$m};
my $dt = DateTime->new(
year => $y,
month => $m,
day => $d,
hour => $H,
minute => $M,
second => $S,
time_zone => 'UTC',
);
$dt->set_time_zone('local');
$dt->truncate( to => 'day' );
print if $dt == $ref_dt;
}
Untested.
|