Silly: Prüfungen weiterer Teile auf Spamverdacht

Beitrag lesen

Hallo,
ich möchte jetzt prüfen , ob alle Formular-Felder angekommen (und korrekt) sind bzw. ob über diese weitere Felder gesendet wurden.
Dies habe ich folgendermaßen versucht.

wenn Feld vorhanden und in Ordnung war, wurde betr. Eintrag von 'N' auf 'J' gesetzt    =====>

%allfields  = (remote_addr     => 'J',
                Feld2           => 'J',
                Feld3           => 'J',
                ...
                 );

foreach my $name (%allfields)
  {
    print "<br>1. $name: $name";
    print "<br>$allfields{$name}: $allfields{$name}";

if ($allfields{$name} ne 'J')                  # Feld nicht vorhanden oder fehlerhaft
      {
       print "<br>2. $name: $name";
       print "<br>$allfields{$name}: $allfields{$name}";
       exit(0);
     };
    print "<br>3. $name: $name";
    print "<br>$allfields{$name}: $allfields{$name}";

.......................

}

Ergebnis:
1. $name: remote_addr
$allfields{remote_addr}: J
3. $name: remote_addr
$allfields{remote_addr}: J
1. $name: J
$allfields{J}:
2. $name: J
$allfields{J}:

Der erste Durchlauf der Schleife scheint in Ordnung zu sein.
Aber warum ist beim zweiten Male $name = 'J' und nicht 'Feld2'?