use Date::Calc qw(check_date); @tests = ( [25, 6, 1996 ], [31, 2, 2005 ], [29, 2, 2000 ], ); for (@tests) { my @ymd = reverse @$_; print "check_date @ymd ergibt " . check_date(@ymd) . "\n"; }