in reply to date validation

Check out Time::Local, which given month, date, and year will return UNIX epoch timestamps, which can be directly compared with normal arithmetic operators. If you need more powerful date manipulation than that, check out Date::Calc or Date::Manip (this one's huge and beastly, but I think it's neat)

HTH.

perl -e 'print "How sweet does a rose smell? "; chomp $n = <STDIN>; $r +ose = "smells sweet to degree $n"; *other_name = *rose; print "$other +_name\n"'