Конвертировать строку «a.b.c» в $ hash -> {a} -> {b} -> {c} в Perl
Я динамически вложенные хэш-ссылки, как это:
my $hash = { 'a' => { 'b' => { 'c' => 'value' } } };
Я хочу установить значение c на «что-то» позволяя пользователю вводить «a.b.c что-то».
Сейчасgetting значение может быть сделано следующим образом:
my $keys = 'a.b.c';
my $v='something';
my $h = $hash;
foreach my $k(split /\./, $keys) {
$h = $h->{$k};
}
print $h; # "value"
Но как бы яset значение ключаc
в$v
чтобы
print Dumper $hash;
будет отражать изменения?$h
не является ссылкой в конце цикла foreach, поэтому изменение, которое не будет отражать изменение в$hash
, Любые намеки, как решить узлы в моей голове?