Convierta la cadena “a.b.c” a $ hash -> {a} -> {b} -> {c} en Perl

He dinámico hash-ref anidados como este:

my $hash = { 'a' => { 'b' => { 'c' => 'value' } } };

Quiero establecer el valor de c en 'algo' permitiendo que el usuario ingrese "a.b.c algo".

Ahoraconsiguiendo El valor se podría hacer así:

my $keys = 'a.b.c'; 
my $v='something';
my $h = $hash;
foreach my $k(split /\./, $keys) {
  $h = $h->{$k};
}
print $h; # "value"

Pero como lo hariaconjunto el valor de la clavec a$v así que eso

print Dumper $hash;

¿reflejaría el cambio?$h no es una referencia al final del bucle foreach, por lo que el cambio no reflejará el cambio en$hash. ¿Alguna pista de cómo resolver los nudos en mi cabeza?

Respuestas a la pregunta(3)

Su respuesta a la pregunta