use strict; use warnings; use 5.010; use Date::Manip; use Date::Manip::Date; my $date1 = Date::Manip::Date->new; my $date2 = Date::Manip::Date->new; my $format = "%Y--%m--%d"; my $error1 = $date1->parse_format($format, "2010--03--30"); my $error2 = $date2->parse_format($format, "2010--03--31"); say $error1; say $error2; if ($error1 == 0 and $error2 == 0) { #then successfully parsed dates my $flag = Date_Cmp($date1, $date2); say $flag; } --output:-- 0 0 Use of uninitialized value $flag in say at 1perl.pl line 21.