my $hash_ref = { a => 1, b => 2 };
my $tmp_ref = $hash_ref;
代碼如上,我想更改哈希值並插入一些新的對。我的問題如下:perl哈希引用的參考
- 我怎樣才能通過
$tmp_ref
- 實現這些是有可能改變或插入引用的參考?
- 它是參考的參考,參考和具體的數據結構(這裏是散列)一致嗎?
非常感謝!
my $hash_ref = { a => 1, b => 2 };
my $tmp_ref = $hash_ref;
代碼如上,我想更改哈希值並插入一些新的對。我的問題如下:perl哈希引用的參考
$tmp_ref
非常感謝!
兩個$hash_ref
和$tmp_ref
將把相同的哈希所以你可以添加一些$hash_ref
:
$tmp_ref->{c} = 3;
然後,兩個$hash_ref
和$tmp_ref
將點指同一(a => 1, b => 2, c => 3)
哈希值。
引用是Perl的指針版本。
在這種情況下,$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};
你可以得到一個參考的參考,但我認爲你不需要。直接引用就足夠了。但是可能有用的是嵌套的數據結構,例如其哈希值是對內部哈希引數的引用的哈希引用 – stevenl