Moin Moin!
Hi,
vielleicht gibt es eine andere Möglichkeit?
Von einem Formular erhalte ich die Werte der Parameter
name1, name2, .....
durch $name1 = $query->param('name1');
$name2 = $query->param('name2');
Das sieht nach CGI aus.
.... und, und, und ....
Schön wäre es, dies zu bewerkstelligen, ohne jeden Parameter hier einzeln aufzuführen.
Speichere die Parameter-Werte in einem Hash.
my %data=();
foreach my $name (qw(name1 name2 foo bar baz)) {
$data{$name}=$query->param($name);
}
Falls $query eine Instanz von CGI ist, und Du alle Parameter in einem Hash haben möchtest, kannst Du damit anfangen:
my %data=map { $_ => [ $query->param($_) ] } $query->param();
Damit hast Du einen Hash voller Array-Referenzen, jede einzelne speichert alle Werte eines Parameters (denn CGI-Parameter können mehrere Werte haben, z.B: bei Checkboxen -- und im Gegensatz zu PHP braucht Perl keine Markierungen am Parameternamen).
Ein Aufruf von script.cgi?foo=1;bar=23;foo=42;name1=9 liefert Dir dann
%data=(
name1 => [ 9 ],
foo => [ 1, 42 ],
bar => [ 23 ],
);
Alexander
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".