Btw., Deine (übliche) Rechnung über den "Timestamp" ist Sekundengenau. Das brauchst eigentlich nicht, wenns nur um Tage geht. Und bei der Prüfung eines Datums like '35.13.1960' gehts mit Time::Local sowieso schon in die Hose.
Was heißt er geht in die Hose? Du kannst vergleichen, ob dieser Wert gültig ist oder nicht, indem du den Timestamp wieder zurück umwandelst.
Und ob sekundengenau oder nicht - du vergleichst drei Zahlen, nach der Umwandlung hast du nur eine.
Struppi.