在perl中,我试图建立一个列表清单的散列。它看起来是这样的:创建哈希字符串=>列表列表,我做错了什么?
my %entries;
while(<>)
{
if(/complicated regex ommitted/)
{
my @entry = ($2, $3, $4);
if(exists $entries{$1})
{
push @{$entries{$1}}, @entry;
}
else
{
$entries{$1} = @entry;
}
}
所生成的散列了所有我所期望的按键,但价值“的名单列表”没有被正确地建立起来。我究竟做错了什么?
编辑:也许有什么毛病我怎么试图访问结果散列。这里是代码
foreach $key (keys %entries)
{
my $size = {@entries{$key}};
# just says "HASH(0xaddress)"?
print "$key: $size\n";
foreach(@{entries{$key}})
{
# loop just goes through once, prints out just " : "
print "\t$_[0]: $_[1] $_[2]\n";
}
}
操纵当复杂的数据结构与Perl,增加'使用警告;'和'严格使用''在代码的顶部附近可以帮助你发现错误。 – 2010-06-28 18:46:13
...和'严格使用;即使你不操作复杂的数据结构,强烈推荐使用警告。 – 2010-06-29 08:31:02