NAME
Date::strict - enable/disable date strict mode.
SYNOPSIS
Date->new("invalid date"); # returns date with error set to Date::Error::parser_error
use Date::strict; # lexical scope
Date->new("invalid date"); # throws Date::Error::parser_error
call_function_using_date(); # code inside function will not be affected by strict mode
no Date::strict;
Date->new("invalid date"); # returns date with error set to Date::Error::parser_error
{
use Date::strict;
DateRel->new("1X"); # throws Date::Error::parser_error
$date + "1X"; # throws Date::Error::parser_error
}
DateRel->new("1X"); # returns relative date with error set to Date::Error::parser_error
Date->new("2019-01-32"); # ok -> 2019-02-01
Date::range_check(1);
Date->new("2019-01-32"); # returns date with error set to Date::Error::out_of_range
use Date::strict;
Date->new("2019-01-32"); # throws Date::Error::out_of_range
DESCRIPTION
By default, when any error occurs in Date framework, it returns an empty object with error()
set.
This module allows you to enable date / relative date string mode when instead of setting error, it throws an exception with the same error.
This mode only affects code inside the same lexical scope.
This mode automatically reverts when the scope ends. If you want to disable strict mode in the middle of the scope, use no Date::strict
.