Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.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 - Fatal编程技术网

Perl 将数组的散列连接到另一个散列的正确方法

Perl 将数组的散列连接到另一个散列的正确方法,perl,Perl,我有一个散列结构,其中每个键对应一个“值”,这是一个数组。我定义并构建了如下哈希结构: my %app push @{$app{$id}}, $id; 我试图让这个散列结构被另一个散列结构索引 my %chainro 它本身就是散列的散列。看起来有三种不同的方法连接这两种结构,我不确定哪一种是正确的 $chainro{$ro}{$id} = $app{$id} @{$chainro{$ro}{$id}} = @{$app{$id}} $chainro{$ro} = \%app; 最后一

我有一个散列结构,其中每个键对应一个“值”,这是一个数组。我定义并构建了如下哈希结构:

my %app
push @{$app{$id}}, $id;
我试图让这个散列结构被另一个散列结构索引

my %chainro
它本身就是散列的散列。看起来有三种不同的方法连接这两种结构,我不确定哪一种是正确的

$chainro{$ro}{$id} = $app{$id}

@{$chainro{$ro}{$id}} = @{$app{$id}}

$chainro{$ro} = \%app;
最后一点:

my %app
push @{$app{$id}}, $id;
$chainro{$ro} = \%app;
然后您可以访问一个元素:

$chainro{$ro}->{$id}->[$index]

当您使用引用而不是哈希或数组本身访问哈希或数组时,需要
->

第一行后面缺少分号,应该是“my%app;”Dan,谢谢。要评估元素,为什么不能使用$chainro->{$ro}->{$id}->[$index],因为
%chainro
是散列,而
$chainro
不存在。如果您希望使用
$chainro->stuff
,则
$chainro
必须是一个引用。例如,您可以说
$chainro=\%chainro
,然后您给出的表达式将是有效的。Dan谢谢。你能详细解释一下为什么$chainro{$ro}{$id}=$app{$id}和{$chainro{$ro}{$id}={$app{$id}不正确吗?这是什么:
push{$app{$id},$id
?那是打字错误吗?对散列中的键和值使用相同的变量是没有意义的。