use strict; use warnings; use Date::Calc qw/check_date/; check_this("28-02-2007"); check_this("31-02-2007"); sub check_this { my ($date) = @_; if ($date !~ /^(\d+)-(\d+)-(\d+)$/) { printf "Invalid date '$date'\n"; return; } my ($day, $mon, $yr) = ($1, $2, $3); my $result = check_date($yr, $mon, $day); printf "Result for '$date' => %s\n", $result? "Okay": "Bad"; }