Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 从哈希引用中复制哈希_Perl_Hash - Fatal编程技术网

Perl 从哈希引用中复制哈希

Perl 从哈希引用中复制哈希,perl,hash,Perl,Hash,我有一个对散列的散列引用 ref->hash1 hash2 等等 我正在尝试复制2个哈希值以用于相互比较 my %hash1 = %$ref->{ $name1}; // but I can't get it to work. my %hash2 = %$ref->{ $name2}; 我得到:参考发现,即使大小的列表预期在 我知道我没有宣布这一权利,因此任何帮助都将不胜感激 这里有错误:%$ref->{$name1},这是不正确的尊重。请检查我下面的例子 #!/u

我有一个对散列的散列引用

ref->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} };
你所说的“隐式解引用”是什么意思?我看不出这有什么用