我在Perl中有一个普遍的问题.下面是什么意思
keys(%S)=@C_fields;
Run Code Online (Sandbox Code Playgroud)
keys(%S)=@C_fields;
是完全相同的 keys(%S) = scalar @C_fields;
用作左值,键允许您增加为给定哈希分配的哈希桶的数量.如果您知道哈希值会变大,这可以获得一定的效率.(这类似于通过为$#数组分配更大的数字来预扩展数组.)如果你说
keys %hash = 200;
那么%hash将为它分配至少200个桶 - 事实上,其中有256个桶,因为它会向上舍入到下一个2的幂.
因此,哈希%S
将获得至少大小为@C_fields
数组的桶数.