kann probleme bereiten, wenn in $key_word irgendwelche regex-sonderzeichen vorkommen, z.B.
ergibt einen fehler. deshalb $key_word immer quoten
my ($name, $value) = split(/=/, $pair);
kann problematisch sein, weil z.B. bei abc=def=3da das 3da einfach verschuett geht. ein wenig sicherer ist:
my ($name, $value) = split(/=/, $pair, 2); # teile nur in 2 teile auf
dann waere $value = "def=3da" und man kann zumindest ueberpruefen, ob in $value ein = vorkommt (falls das = kein gueltiges zeichen von $value ist)
my $FORM{my $name} = $value;
hat mehrere probleme:
1. my $FORM{$name} geht nicht; wenn du einen hash deklarieren willst:
my %FORM;
$FORM{schluessel} = 'wert',
# oder
my %FORM = (schluessel => 'wert');
du kannst nicht einen teil eines hashes mit my deklarieren (das wuerde nur eventuell mit local funktionieren, aber das willst du nicht)
2.
$FORM{my $name} = $value;
my $name hat noch keinen wert, weil es eben erst deklariert wurde. es ist also gleichbedeutend mit
undef ist zwar ein gueltiger Wert fuer einen hashschluessel, aber den willst du wohl nicht haben. my deklariert eine voellig neue variable; du willst jedoch das schon vorhandene $name haben, also kein my, sondern eher sowas wie:
my %FORM = ();
my ($name, $value) = split(/=/, $pair, 2);
$FORM{$name} = $value;
ich glaube, meine "Einfuehrung in Perl" von meiner HP unter Vortraege wuerde dir nicht schaden...\n\n
<!--EDIT|Strat|1138290931-->