123456789101112131415
use strict;use warnings;use Time::Local;my @A = ( [25, 6, 1996 ], [31, 2, 2005 ], [29, 2, 2000 ],);foreach my $dmy (@A) { my ($d, $m, $y) = @{$dmy}; print "invalid date: $d.$m.$y\n" unless eval { timelocal (0,0,0,$d,$m-1,$y) };}