Yeah, as the others have said, you're probably better off going to CPAN for something as complicated as date checking can be.
in reply to Date Checking module
On the style front, you might consider using Perl's unpack function, instead of substr.
...if you wanted to. There's nothing wrong with using substr here (other than that it takes a lot of typing...) - just pointing out an alternative that you might want to look into.
# you could use this:
my ($month, $day, $year) = unpack('a4 a2 a2', $date);
# instead of this:
my $year = substr($date,0,4);
my $month = substr($date,4,2);
my $day = substr($date,6,2);