You could use eval to trap the errors
Updated poj#!/usr/bin/perl use strict; use warnings; use CGI ':standard'; use CGI::Carp qw(fatalsToBrowser); use Time::Piece; # email addresses my $dir = '../../public_html/'; open CSV,'<',$dir.'email.txt' or die "CSV $!"; my @csv = <CSV>; close CSV; chomp(@csv); # build one regex my $re = join '|', map { quotemeta } sort { length $b <=> length $a } @csv; $re = qr/$re/; # seach text file my %date = (); my @error=(); my $lineno = 0; open BUYERS,'<',$dir."buyers.txt" or die "BUYERS $!"; for (<BUYERS>){ ++$lineno; if (/($re)/){ my $addr = $1; if (/(\d+\/\d+\/\d+)/){ my $date; if ( eval{ $date = Time::Piece->strptime($1, '%m/%d/%Y') ; 1} ){ push @{$date{$addr}},$date->strftime('%Y%m%d'); } else { push @error,"Error parsing '$addr' date : '$1' on line $lineno +\n"; } } } } # sort dates my @output; for my $addr (@csv){ push @output,$addr,sort @{$date{$addr} || []}; } # output print "Content-type: text/html\n\n"; print "$_\n" for @error; print "$_\n" for @output;
In reply to Re: time::piece Error parsing time at /usr/lib64/perl5/Time/Piece.pm line 469
by poj
in thread time::piece Error parsing time at /usr/lib64/perl5/Time/Piece.pm line 469
by darkwell
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |