He anidados hash árbitros dinámicos como esto:
my $hash = { 'a' => { 'b' => { 'c' => 'value' } } };
Quiero configurar el valor de c a 'algo' al permitir que el usuario ingrese "abc algo".
ahora conseguir el valor podría hacerse así:
my $keys = 'a.b.c';
my $v='something';
my $h = $hash;
foreach my $k(split /\./, $keys) {
$h = $h->{$k};
}
print $h; # "value"
Pero ¿cómo iba a establecer el valor de clave c
-$v
modo que
print Dumper $hash;
podría reflejar el cambio ? $h
no es una referencia al final del ciclo foreach, por lo que cambiar eso no reflejará el cambio en $hash
. ¿Alguna pista sobre cómo resolver los nudos en mi cabeza?
Trate de usar 'dd' la función del módulo CPAN' de datos :: Dump' en lugar del estándar de datos :: '' Dumper' de Dumper'. El módulo CPAN facilita la lectura. – tchrist