<p>How can I validate date strings in Perl?  I'd like to account for leap years and also time zones.  Someone may enter dates in the following formats:</p>

<pre>
11/17/2008
11/17/2008 3pm
11/17/2008 12:01am
11/17/2008 12:01am EST
11/17/2008 12:01am CST
</pre>

CPAN
has many packages for dealing with dates, such as
DateTime
and
Date::Manip
. To parse your date, the Date::Parse module in
TimeDate
might work (yes, there are both DateTime and TimeDate).
In general, whenever you need to do something in Perl, check CPAN. There's probably a module for it. Look at what's available and see what fits your situation.
Good luck, :)