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 に答える