It is hard for me to believe that perl would not have a built-in isvalid operator to test for the validity of dates, but the llama book doesn't mention one and neither does my google search.
You are correct: Perl does not have an is_valid operator or function for dates, and such a thing does not belong in the language (IMHO), but in a library (like Date::Manip or Date::Calc), or even in the standard Time::Local module (which doesn't have a simple is_valid function, but you could create one with it). Also, Date::Manip is rather slow, the author of it even suggest that 90% of the time you probably want to use one of the other date/time modules -- you might consider using Date::Calc instead.
I am also curious why there is an ampersand in &parsedate. I was not aware that variable or function names can begin with an ampersand.
The ampersand is largely a holdover from perl4 times when that was how you invoked a subroutine (just like scalars, arrays, and hashes had their own type specifier, so did subroutines). There are a few differences when ampersand is used compared to when it is not used:
&func; # calls func with current contents of @_ # no prototype checking &func() # calls func with no args, no prototype checking
see the perlsub manpage for more details.
In reply to Re: Checking for Valid Dates
by danger
in thread Checking for Valid Dates
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |