linux-l: perl-hashs mit dynamischen Variablen
Ulrich Wiederhold
U.Wiederhold at gmx.net
Fr Feb 9 10:17:16 CET 2001
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...
Ideen? Es geht um die 2 Zeilen mit eval, der Rest funzt und in dem hash
ist auch alles ok.
Im Perl-Text sieht das dann so aus:
while (($key, $value) = each(%config))
{
$i = 0;
if (ref $value)
{
while ($i <= $#{$config{$key}})
{
eval"'\$' . '$key' . '[' . $i . ']' = ${$config{$key}}[$i]}";
$i++;
}
}
else
{
eval "'\$' . '$key' = $config{$key}";
}
}
Gruß
Uli
Mehr Informationen über die Mailingliste linux-l