Ich habe dynamische verschachtelte Hash-Refs wie folgt aus:
my $hash = { 'a' => { 'b' => { 'c' => 'value' } } };
ich festlegen möchten der Wert von c zu "etwas", indem dem Benutzer erlaubt wird, "abc etwas" einzugeben.
my $keys = 'a.b.c';
my $v='something';
my $h = $hash;
foreach my $k(split /\./, $keys) {
$h = $h->{$k};
}
print $h; # "value"
Aber wie würde ich gesetzt den Wert der Schlüssel c
-$v
so dass
print Dumper $hash;
die Änderung widerspiegeln würde:
Jetzt bekommen könnte der Wert wie folgt durchgeführt werden ? $h
ist kein Ref am Ende der foreach-Schleife, so dass das Ändern nicht die Änderung in $hash
widerspiegelt. Irgendwelche Hinweise, wie ich die Knoten in meinem Kopf lösen kann?
Versuchen Sie, die CPAN 'Data :: Dump' Moduls' dd' Funktion anstelle des Standard 'Data :: Dumper' des' Dumper' verwenden. Das CPAN-Modul erleichtert das Lesen erheblich. – tchrist