I think the approach is sound.
The following script does not output the additional warnings, so it must be some other module that loads (say) Carp or something else that outputs these (caught) warnings.
use 5.020;
use Test::More;
use DateTime;
package MyApp::Util {
# in MyApp::Util
sub convert_datetime {
my ( $self, $incoming_datetime ) = @_;
my $new_dt;
eval { $new_dt = DateTime::Format::ISO8601->parse_datetime( $i
+ncoming_datetime ); };
return undef if $@;
# No error, now we can convert the date (not shown)
return $new_dt;
}
}
my $bogus_datetime = MyApp::Util->convert_datetime("FOO");
is ($bogus_datetime, undef, "convert_datetime doesn't blow up if sent
+bogus date");
done_testing;
|