我有散列散列的散列引用。從散列引用複製散列
裁判 - > HASH1
HASH2
等等
我試圖複製2個散列用來進行相互比較。
my %hash1 = %$ref->{ $name1}; // but I can't get it to work.
my %hash2 = %$ref->{ $name2};
我得到:參考找到哪裏,甚至大小列表預期在。
我知道我沒有宣佈這個權利,所以任何幫助,將不勝感激。
我有散列散列的散列引用。從散列引用複製散列
裁判 - > HASH1
HASH2
等等
我試圖複製2個散列用來進行相互比較。
my %hash1 = %$ref->{ $name1}; // but I can't get it to work.
my %hash2 = %$ref->{ $name2};
我得到:參考找到哪裏,甚至大小列表預期在。
我知道我沒有宣佈這個權利,所以任何幫助,將不勝感激。
你在這裏有錯誤:%$ref->{ $name1};
,這是不正確的。請檢查下面的示例。
#!/usr/bin/perl
use strict;
use Data::Dumper;
my $ref = {
hash1 => { a => 1, b => 2 },
hash2 => { c => 3, d => 3 },
};
my $name = 'hash1';
my %hash = %{ $ref->{$name} }; # right dereference
print Dumper(\%hash);
由於運算符優先級,你需要做這種方式:
my %hash1 = %{ $ref->{$name} };
很好用。謝謝。 – user1712832
+1:比fxzuz更好的答案 – Borodin
的偉大工程。謝謝 – user1712832
@ user1712832,太好了。所以接受這個答案。 – snoofkin
「隱含解引用」是什麼意思?我看不到任何適用的方法 – Borodin