hashレファレンス内の変数を初期化すると…
hashレファレンス内の変数を初期化すると、その変数は切り離されてhashの中には元々の変数のコピーが残るようだ。言葉にするとややこしいが、こんな感じ。
use strict; # 空のハッシュを別のハッシュの中に入れる my $inner_hash = +{}; my $outer_hash = +{ inner => $inner_hash, }; # 当然どっちから参照しても空っぽ print "outer1: ".$outer_hash->{inner}->{1}."\n"; print "inner_1: ".$inner_hash->{1}."\n";