现在我有两个哈希。我想将一个完整的哈希值分配给第二个哈希中的id。但是,我无法将该哈希值分配给另一个哈希值。
您可以通过以下方式将哈希分配到另一个哈希:
$nodes{$id}=%nodeHash;
现在这不起作用,因为当我说:
print Dumper(\%nodes);
我得到了这个结果:
$VAR1 = {
'c2' => '4/8',
'c1' => {}
};
对不起,如果这不是完全有意义的话,我不是一个非常有经验的程序员,所以散列哈希非常复杂。
答案 0 :(得分:20)
仅聚合商店标量。因此,使用ref运算符来获取散列值:
$nodes{$id} = \%node_hash;
或者,有时稍微更安全一点,分配一个新的并将旧的复制到其中,然后返回新的参考:
$nodes{$id} = { %node_hash };
答案 1 :(得分:8)
哈希值必须是标量,因此您需要分配哈希引用:
$nodes{$id} = \%nodeHash;
答案 2 :(得分:5)
您不能使用哈希作为值,但您可以使用对哈希的引用; $nodes{$id} = \%nodeHash;