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

use*_*207 5 perl hash

我在Perl中有一个普遍的问题.下面是什么意思

keys(%S)=@C_fields; 
Run Code Online (Sandbox Code Playgroud)

Сух*_*й27 8

keys(%S)=@C_fields; 是完全相同的 keys(%S) = scalar @C_fields;

perldoc -f keys

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

keys %hash = 200;

那么%hash将为它分配至少200个桶 - 事实上,其中有256个桶,因为它会向上舍入到下一个2的幂.

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

  • 不,告诉其他程序员这是代码在做什么 (2认同)