Yo le presentaría algo así:
Introduzca la fecha inicial [AAAA/MM/DD]:Así, el usuario sabe (si es algo listo y está acostumbrado a manejar programas en
consola) que debe introducir la fecha en el formato año/mes/día.
Luego, lo introducido lo paso por
DateTime::Format::Strptime y si el resultado es un objeto, es que nos ha dado una fecha válida.
Al menos, es lo que yo haría. Pero en Perl... hay muchas otras formas. ¿Alguien más da su opinión?