Hi everyone,

I think my question relates to STDOUT rather than Time::Piece but I'm not
sure.

I am trying to use Time::Piece to process and convert a string which may be
a bit dodgy. What I can't understand is how to capture the problem. The
following code only captures the problem with the second test in the
$EVAL_ERROR ($@). The problem with the first one ("garbage at end of string
in strptime: ...") just goes to the screen - but I need to be able to handle
it.

This is a snippet of code to show what I mean:

# # # # # # #
#!/usr/bin/perl
use strict;
use warnings;

use Time::Piece;

my @tests = ( '28 FEB 2008 stuff at the end to see what Time::Piece does',
'blah 28 FEB 2008' );
my $format = '%d %h %Y';

foreach my $i ( 0..$#tests ) {
    print "\nTEST $i\n";
    eval {
        my $date_object= Time::Piece->strptime($tests[$i], $format);
        print $date_object->dmy("/") . "\n";
    };
    if ($@) {
        print "eval error: $@";
    }
}
# # # # # # #

The output from running this is:

$ perl test.pl

TEST 0
garbage at end of string in strptime:  stuff at the end to see what
Time::Piece does at C:/Perl/site/lib/Time/Piece.pm line 470.
28/02/2008

TEST 1
eval error: Error parsing time at C:/Perl/site/lib/Time/Piece.pm line 470.
$



-- 
Myf White

Work like you don't need the money. Love like you've never been hurt. Dance
like nobody's watching.
~ Satchel Paige

Reply via email to