$date = "2000-12-1"; unless ($date =~ m/(\d\d\d\d)-(\d\d?)-(\d\d?)/) { die "Invalid date format\n"; } # put captured data from regex into appropriate vars my ($year,$month,$day) = ($1,$2,$3); die "Invalid year!" if $year < 1900 or $year > 2100; die "Invalid month!" if $month < 1 or $month > 12; die "Invalid day!" if $day <1 or $day > 31; print "Date OK!";