s. Thema. Dank Perl gehts ja auch so, dass 01 als Zahl anerkannt wird. Also _Zahlen_ vergleichen (mit dem Zahlenvergleichsoperator) und gut is.
Aber 01.01.1999 ist keine Zahl? Üblich ist eher, die Zahl in einen Timestamp umzuwandeln und zu vergleichen.
Du meinst, das Datum umzuwandeln. Ja klar, mach ich. Gesplittet ergeben sich
d = 01
m = 01
y = 1999
und nach Umrechnen und Zurückrechnen (Scaliger) ergeben sich
dx = 1
mx = 1
yx = 1999
Perl findet, dass d == dx und m == mx und y == yx ist und somit das Datum für OK. Isses ja auch ;-)
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.
Viele Grüße,
Horst Haselhuhn
Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.