Stefan Muenz: PERL-Script (Hash-Liste erzeugen)

Beitrag lesen

Hallo Oliver,

Ich möchte in einem Perl-Script alle Feldnamen/Werte-Paare eines Formulars einer Hash-Liste zuweisen.
Hier der Ausschnitt (leicht modifiziertes Script aus einem SELFHTML-Beispiel)

Der Beispiel-Code in SELFHTML funktioniert zwar, wenn man nichts daran aendert, ist nicht optimal, weil er mit einer normalen Liste arbeitet statt mit einem assoziativen Array. Nimm mal die folgende Funktion zum Einlesen des Formulars:

sub Formulardaten_einlesen {

liest Formdaten nach der post-Methode ein.

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
   @pairs = split(/&/, $buffer);
   foreach $pair (@pairs) {
      ($name, $value) = split(/=/, $pair);
      $value =~ tr/+/ /;
      $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
      $FORM{$name} = $value;
   }
}

Nach Aufurufen dieser Funktion kannst Du dann mit so Ausdruecken wie $FORM{'Anrede'} oder $FORM{'Vorname'} oder $FORM{'Nachname'} auf einzelne Formulardaten zugreifen (im Beispiel auf Felder mit <input name="Anrede">, <input name="Vorname">, <input name="Nachname">).

Viele Gruesse
  Stefan Muenz