这个行键的含义是什么(%S)= @ C_fields;?

时间:2015-02-06 12:12:08

标签: perl hash

我在Perl中有一个常见问题。下面的行是什么意思

keys(%S)=@C_fields; 

1 个答案:

答案 0 :(得分:8)

keys(%S)=@C_fields;keys(%S) = scalar @C_fields;

相同

perldoc -f keys

  

用作左值,键允许您增加为给定哈希分配的哈希桶的数量。如果您知道哈希值会变大,这可以获得一定的效率。 (这类似于通过为$#数组分配更大的数字来预扩展数组。)如果你说

     

keys %hash = 200;

     

然后%hash将为其分配至少200个桶 - 实际上是256个桶,因为它会向下舍入到下一个2的幂。

因此,哈希%S将获得至少大小为@C_fields数组的桶数。