从哈希引用中复制哈希

时间:2012-10-06 17:55:34

标签: perl hash

我有哈希哈希的哈希引用。

参考 - > HASH1
       HASH2
       等...

我正在尝试复制2个哈希值,以便相互比较。

   my %hash1 = %$ref->{ $name1}; // but I can't get it to work.  
   my %hash2 = %$ref->{ $name2};

我得到:参考文献找到了偶数大小的列表。

我知道我没有宣布这是正确的,所以任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:4)

这里有错误:%$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);

答案 1 :(得分:3)

由于运算符优先级,您需要这样做:

my %hash1 = %{ $ref->{$name} };