我在Perl中有一个常见问题。下面的行是什么意思
keys(%S)=@C_fields;
答案 0 :(得分:8)
keys(%S)=@C_fields;
与keys(%S) = scalar @C_fields;
用作左值,键允许您增加为给定哈希分配的哈希桶的数量。如果您知道哈希值会变大,这可以获得一定的效率。 (这类似于通过为$#数组分配更大的数字来预扩展数组。)如果你说
keys %hash = 200;
然后%hash将为其分配至少200个桶 - 实际上是256个桶,因为它会向下舍入到下一个2的幂。
因此,哈希%S
将获得至少大小为@C_fields
数组的桶数。