Hallo,
Ich will eine Funktion haben, die mir WAHR zurückgibt, wenn die Eingabe nicht leer ist und nicht von 1 und 31 ist. Bis jetzt habe ich es so gelöst:if (($$gebtag ne '') && (!grep /$$gebtag/, (1..31))) {
$$error = 1;
$$gebdatenerror = 'Der Geburtstag ist nicht gültig !';
}
Warum prüfst du den mit einer Schleife?
if ( $$gebtag && ($$gebtag < 0 || $$gebtag > 31)) {
$$error = 1;
$$gebdatenerror = 'Der Geburtstag ist nicht gültig !';
}
Darüberhinaus, würde ich die Gültigkeit eines Datums nicht so prüfen. Du solltest mit localtime und Time::localtime die Zahlen miteinander vergleichen. Dann kannst du wirklich feststellen ob das Datum ein gültiges Datum ist.
Struppi.