The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.