2

我有一个对哈希哈希的哈希引用。

ref -> hash1
hash2
等...

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

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

我得到:在预期大小均匀的列表中找到参考。

我知道我没有声明这是正确的,所以任何帮助将不胜感激。

4

2 回答 2

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);
于 2012-10-06T18:17:02.267 回答
3

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

my %hash1 = %{ $ref->{$name} };
于 2012-10-06T18:47:50.583 回答