linux-l: perl-hashs mit dynamischen Variablen
Robert C. Helling
helling at aei-potsdam.mpg.de
Fr Feb 9 11:34:58 CET 2001
On Fri, 9 Feb 2001, Ulrich Wiederhold wrote:
> Hallo,
> mal wieder Perl...
>
> Ich habe ein hash, bei dem einem key entweder ein Skalar oder mehrere
> Werte als Referenz-Array zugeordnet sind.
>
> Dieses Values möchte ich nun in Skalare und Arrays schreiben, die aus
> dem Key generiert werden.
>
> Also, wenn $value($key) = Referenz, dann speichere value[i] in '$' .
> '$key' . '[' . $i . ']', wenn keine Referenz (sondern Skalar), dann
> speichere '$' . '$key' = $value.
>
> Dazu benötige ich wohl "eval". Aber trotz stundenlangem Probierens ist
> mir bisher nix gelungen, außer das es beim Aufruf jetzt schon keine
> Fehlermeldungen mehr gibt...
>
Ich glaube, was Du willst ist
#!/usr/local/bin/perl
$hash{eins} = "hallo";
$hash{zwei} = ['nase', 'mund'];
foreach (keys %hash){
if(ref($hash{$_})){
eval("\@$_ = \@{\$hash{$_}};");
}
else{
eval("\$$_ = \$hash{$_};");
}
}
print "eins ist $eins\n";
print "zwei ist ". join('|', at zwei)."\n";
Gruesse
Robert
--
.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oO
Robert C. Helling Institut fuer Physik
Humboldt-Universitaet zu Berlin
print "Just another Fon +49 30 2093 7964
stupid .sig\n"; http://www.aei-potsdam.mpg.de/~helling
Mehr Informationen über die Mailingliste linux-l