use Time::Local qw( timegm ); /(\d{4})[-\/.](\d{2})[-\/.](\d{2})/ or die("Bad format\n"); my $time = eval { timegm(0, 0, 0, $3, $2, $1) }; die("Bad date\n") if $@;