【发布时间】:2011-08-03 17:57:03
【问题描述】:
“如何在 Perl 中找出散列的大小?”的标准 googleable 答案是“取keys(%hash)的大小”:
my %h = {};
print scalar (keys (%h));
这会打印“1”。我期待零。另一方面。同样,
my %h = {};
$h{"a"} = "b";
$h{"x"} = "y";
print scalar keys (%h);
print "\nKey: $_" for (keys %h);
打印:
3
键:a
键:x
密钥:HASH(0x229e8)
这些额外的价值从何而来?
【问题讨论】:
-
您应该认真考虑启用
warningspragma。它会发现这个错误。 -
将这些行放在 ALL 脚本的顶部:use strict;使用警告;