my ($readnick,$readpwd) = $checkpwd->fetchrow_array;
wenn hier entweder das Feld nick oder pass NULL ist, dann ist der Wert von $readpwd undefined.
$checkpwd->finish;
$readpwd = crypt($readpwd, $crypt);
$crypt ist definiert?
dann habe ich die Variable auf existenz geprüft:
if ($readpwd) {
Du prüfst lediglich ob der Wert wahr ist, aber nicht auf Existenz.
auf Existenz prüfen wäre so:
if(defined $readpwd) {
Struppi.