我对 Perl 还很陌生,所以如果这似乎是一个简单的问题,请原谅我......
无论如何,我有一个数组散列,我试图检索散列中的一个数组,但我能得到的只是数组的标量大小。
%HoA = a hash of arrays
$key = some key in the hash
foreach $nextItem (@HoA{$key}) {
do a bunch of stuff with $nextItem
}
当我这样做时, $nextItem 总是只是数组的大小,并且循环只运行一次。我尝试打印以下内容:
@HoA{$key}
$HoA{$key}
@$HoA{$key}
前两个给我标量大小,第三个给我什么......我在这里错过了什么?
更新:我想知道我的问题是否实际上是我将数组添加到哈希的方式。这就是我正在做的事情:
@HoA{$key} = split(/ /, $list);
这会将数组粘贴在哈希中,还是将数组大小粘贴在哈希中?
更新2:我尝试了以下代码块:
my $key = "TEST";
my %HoA = ();
my @testarray = (1, 2, 3);
@HoA{$key} = @testarray;
print Dumper(%HoA);
这是输出:
$VAR1 = 'TEST';
$VAR2 = 1;
为什么它只粘贴数组的第一个值?