所以这个错误让我很生气。我已经阅读了很多关于这个错误的论坛和很多问题。但我尝试的一切似乎并没有解决所有问题。
我有严格的,这就是我的代码:
my $resultsHash;
my $exResults = Array of Results
foreach my $exData (@$separateArray){
push ( @{ $resultsHash }, $exData);
push ( @{ $resultsHash{$exData} }, @$exResults);
}
我做错了什么?有更好的方法吗?
答案 0 :(得分:1)
你所写的不是Perl,很长一段时间。
您必须使用use strict
和use warnings
开始每个程序,并在其第一个使用点声明每个变量。
您有多个变量
例如,声明
push @{ $resultsHash }, $exData
将$resultsHash
视为对数组的引用。但
push @{ $resultsHash{$exData} }, @$exResults
使用%resultsHash
,它是独立的对象。
Array of Results
也不是Perl。你似乎是从$exResults
推出,好像它是对数组的引用,但它是如何填充的?
如果您更好地解释您的代码,我相信我们可以帮助您。
答案 1 :(得分:0)
在您显示的代码中,您正在使用但未声明%resultsHash
和$separateArray
;声明或以其他方式修复它们。
您究竟想让$resultsHash
/ %resultsHash
最终看起来像什么?
更新:听起来你想要声明%resultsHash,而不是$ resultsHash,然后执行:
$resultsHash{$exData} = $exResults
而不是推动?