use Mosche;
Auch wenn die Frage bereits gelöst ist:
Wie gebe ich in Perl einen Array als Parameter weiter? Ich habe es mit name="wert" value=@array und @neuerarray = param("wert") versucht, aber irgendwie scheint das nicht zu klappen, da dann Daten verlorengehen.
Direkt geht das nicht. Eine Möglichkeit ist es aber, den Array so in dein Input-Feld zu schreiben, dass du ihn dann wieder mit Perl als Array auslesen kannst.
Einfachste Möglichkeit:
Du schreibst den Array mit join('...Trennzeichen...', @array) in dein Input-Feld. Dann kannst du den Array wiederbekommen mit @array = split(/...Trennzeichen.../, param('wert'))
Problem: die Array-Elemente selber dürfen nicht das Trennzeichen enthalten!
Nächste Möglichkeit:
Nimm ein passendes Modul, welches deinen Array serialisiert.
a) Data::Dumper
Du schreibst in dein Input-Feld einen Dump deines Arrays rein
use Data::Dumper;
und liest ihn entsprechend wieder aus:
my @array = @{eval(param('wert'))}; # ungetestet
Es gibt auch andere Möglichkeiten, Data::Dumper zu verwenden. Schau da mal in die entspr. perldoc.
b) Storable
Ist schneller als Data::Dumper
schreiben
use Storable qw(freeze);
print "<input type='hidden' name='wert' value='" . freeze(@array) . "' />";
lesen
use Storable qw(thaw);
my @array = @{thaw(param('wert'))};
use Tschoe qw(Matti);
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
Webapplikationen in C++ entwickeln: http://www.maekitalo.de/tntnet/