我在计算如何在基于文本输入的perl中创建嵌套哈希时遇到了一些麻烦。哈希的Perl嵌套哈希
我需要像这样
my % hash = {
key1 => \%inner-hash,
key2 => \%inner-hash2
}
但我的问题是我不知道先验多少内部散列会有。为此,我写了下面这段代码来测试一个str变量是否可以在一个循环中创建,并且它的引用存储在一个数组中,并在稍后解除引用。
{
if($line =~ m/^Limit\s+$mc_lim\s+$date_time_lim\s+$float_val\s+$mc\s+$middle_junk\s+$limit \s+$value/) {
my $str = $1 . ' ' . $2 . ' ' . $7;
push (@test_array_reference, \$str);
}
}
foreach (@test_array_reference) {
say $$_;
}
Perl因为不是标量运行时错误而死亡。我在这里有点失落。任何帮助将不胜感激。
没有什么会跳出来,因为那代码显然是错误的(尽管我不认为创建标量引用会对您的原始问题有所帮助)。你能否包含来自Perl的完整的逐字错误信息? – rra 2013-03-24 17:48:39
要将值存储在任意深度的哈希中,请参阅Data :: Diver。你的第一个哈希赋值是坏的;要分配的列表应该在'()'而不是'{}'中。你能否展示一个完整的例子,它不会产生标量错误? – ysth 2013-03-24 17:51:59
在./BadMailClassLimit.pl第43行,第9817388行不是SCALAR引用。 –
subramanian
2013-03-24 18:00:59