epi*_*rus 1 perl hash reference
考虑简单的Hash of Hash引用.当我解除(内部)哈希值并改变它的一些值时,这不会转移到哈希的原始哈希值.但是用箭头表示法确实如此.我检查箭头符号的地方只是简单的解释,所以给出了什么?
use Data::Dumper;
$HoH{"one"}={'f1' => "junk",
'f2' => 0};
$href = $HoH{"one"};
%hh=%{$HoH{"one"}};
print Dumper($href);
$href->{'f2'}=1;
$href->{'f1'}="newJunk";
print Dumper($HoH{"one"});
$hh{'f2'}=0;
$hh{'f1'}="oldJunk";
print Dumper($HoH{"one"});
Run Code Online (Sandbox Code Playgroud)
这行做了一个副本:
%hh=%{$HoH{"one"}};
Run Code Online (Sandbox Code Playgroud)
之后,哈希值的更改%hh不会反映在hashref中$HoH{one}.
特别是,上面的行是列表赋值的一种形式,它执行复制.没有传递散列引用,就像这样
$href = $HoH{"one"};
Run Code Online (Sandbox Code Playgroud)