次のように、動的にネストされたハッシュ参照を作成しました。
my $hash = { 'a' => { 'b' => { 'c' => 'value' } } };
ユーザーが「abc something」を入力できるようにすることで、c の値を「something」に設定したいと考えています。
値を取得するには、次のようにします。
my $keys = 'a.b.c';
my $v='something';
my $h = $hash;
foreach my $k(split /\./, $keys) {
$h = $h->{$k};
}
print $h; # "value"
しかし、キーの値をどのように設定するのでしょうかc
$v
print Dumper $hash;
変更を反映しますか?$h
は foreach ループの最後の ref ではないため、これを変更しても の変更は反映されません$hash
。頭の中の結び目を解決する方法のヒントはありますか?