Einlesen der übertragenen Daten
@Formularfelder = split(/&/, $Daten);
foreach $Feld (@Formularfelder)
{
($name, $value) = split(/=/, $Feld);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s///g;
$Formular[$i] = $name;
$i = $i + 1;
$Formular[$i] = $value;
$i = $i + 1;
}
[ Quelle: Münz, Stefan: SELFHTML CGI-Perl - Perl-Sprachelemente - CGI-typische Anweisungen in Perl, http://www.teamone.de/selfhtml/tgcm.htm#a1 ]
In der ersten Zeile werden die übertragenen Daten aus dem Skalar $Daten, die mit einem "&" voneinander getrennt sind, gespalten und in dem Array - eine Liste mehrerer Daten, die mit einer Indexnummer angesprochen werden können - @Formularfelder gespeichert.
Danach wird jedes Datum von @Formularfelder (foreach $Feld (@Formularfelder)) in den in der HTML-Datei definierten Feldnamen und den eingegebenen Wert getrennt, wobei der jeweilige Wert aus @Formularfelder in dem Skalar $Feld zwischengespeichert wird. Das Trennzeichen ist "=" und die resultierenden Variablen sind $name und $value.
Die folgenden 3 Zeilen formatieren die übertragenen Daten in "normalen" Text.
Nun wird der Name und Wert des aktuell bearbeiteten Feldes zur Weiterverwendung im Script im Array @Formular gespeichert: $Formular[$i] = $name und $Formular[$i] = $value.
Da die Laufvariable $i am Anfang den Wert 0 hat, wird der $name des Feldes an 0ter Stelle des Arrays gespeichert. Danach wird $i um 1 erhöht und der Wert infolgedessen an 1ter Stelle gespeichert.
Danach wird $i erneut um 1 erhöht und der Durchgang wiederholt sich für die restlichen (Formular-)Felder, so dass die Namen an den geraden und die Werte an den ungeraden Stellen von @Formular gespeichert werden.
©opyrights @ Nils Heuermann & Stefan Dyck 2000