my $hash_ref = { a => 1, b => 2 };
my $tmp_ref = $hash_ref;
代码如上所述,我想更改哈希值并插入一些新对。我的问题如下:
$tmp_ref
非常感谢!
答案 0 :(得分:3)
在这种情况下,$tmp_ref
不是对$hash_ref
的引用,它只是$hash_ref
值的副本。
您可以使用$tmp_ref
访问哈希,就像使用$hash_ref
:
$tmp_ref->{a}; # 1
$tmp_ref->{foobar} = "hi";
$tmp_ref->{foobar}; # "hi"
如果您确实希望$tmp_ref
引用$hash_ref
,请按照以下方式访问原始哈希:
$tmp_ref = \$hash_ref;
${$$tmp_ref}{a};
答案 1 :(得分:2)
$hash_ref
和$tmp_ref
都会引用相同的哈希,因此您可以使用以下内容向$hash_ref
添加内容:
$tmp_ref->{c} = 3;
然后$hash_ref
和$tmp_ref
点都会引用相同的(a => 1, b => 2, c => 3)
哈希值。
引用是Perl的指针版本。