Beitrag von hempelr (1976 Beiträge) am Samstag, 7.Juli.2007, 10:51.
Perl-Frage zu Namespaces
Wie kann man in ner Sub unbekannte Parameter aufsplitten in Parametername/Parameterwert mit Gültigkeitsbereich nur in dieser Sub.
Es ist aber vorher nicht klar, welche Parameter denn übergeben werden, möglich wären alle beliebigen Namens/Wertkombinationen in der Form:
parametername=parameterwert
Also Subaufruf wie folgt:
&sub ("pn1=pw1","pn2=pw2","pn3=pw3"..."pnn=pwn");
In der Sub dann die Auswertung in der Art:
my @pairs = @_;
foreach my $pairs(@pairs){
($varname,$varwert) = split "=",$pairs;
$$varname = $varwert;
}
wobei $$varname eben nur lokal aber in der gesamten Sub gültig sein sollen, weil mit diesen dann weitere Sachen angestellt werden sollen.
Gibts dafür ne Lösung, oder ist das so mit anonymen und erst zur Laufzeit bekannt werdenden Parameternamen nicht möglich?
Danke für Tipps
Antworten
Beitrag von Sander (8133 Beiträge) am Samstag, 7.Juli.2007, 11:42.
Re: Perl-Frage zu Namespaces
Antworten
Beitrag von hempelr (1976 Beiträge) am Samstag, 7.Juli.2007, 12:14.
Re: Perl-Frage zu Namespaces
nee, ich glaube leider nich, da isses nur im foreach bekannt - das soll aber auch ausserhalb davon aber nur innerhalb der Sub bekannt sein
Ich probier mal noch etwas rum
Danke für den Gedankenanstoss...
Antworten
Beitrag von Sander (8133 Beiträge) am Samstag, 7.Juli.2007, 23:24.
Re: Perl-Frage zu Namespaces
ach shit, schon wieder in die falle reingetappt, nich war christoph? ;)
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Sonntag, 8.Juli.2007, 08:15.
Re: Perl-Frage zu Namespaces
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 7.Juli.2007, 14:22.
Re: Perl-Frage zu Namespaces <-- Mit Namespaces hat das nix zu tun...
Antworten
Beitrag von hempelr (1976 Beiträge) am Montag, 16.Juli.2007, 15:47.
Re: Perl-Frage zu Namespaces <-- Mit Namespaces hat das nix zu tun...
aha - jagut, also namespace != gültigkeitsbereich von vars
Ja stimmt, die Idee mit dem Hash ist gut, unglaublich, wozu man solche Dinger alles gebrauchen kann.
Danke für den Tipp
Antworten