perl – 什么是4/16在散列?

前端之家收集整理的这篇文章主要介绍了perl – 什么是4/16在散列?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

06000

That will be true if (and only if) the hash has at least one
key-value
pair.

The actual result is an internal debugging string useful to the
people
who maintain Perl. It looks something like “4/16,” but the value
is guaranteed to be true when the hash is nonempty,and false when
it’s empty. –Llama book

这是什么4/16?任何人都可以看到一个小程序,从那里我可以看到结果是4/16?

解决方法

perldoc perldata

If you evaluate a hash in scalar context,it returns false if the hash
is empty. If there are any key/value pairs,it returns true; more
precisely,the value returned is a string consisting of the number of
used buckets and the number of allocated buckets,separated by a
slash. This is pretty much useful only to find out whether Perl’s
internal hashing algorithm is performing poorly on your data set. For
example,you stick 10,000 things in a hash,but evaluating %HASH in
scalar context reveals “1/16”,which means only one out of sixteen
buckets has been touched,and presumably contains all 10,000 of your
items.

所以,4/16将是使用/分配计数的桶,像下面这样的值将显示这个值:

%hash = (1,2);
print scalar(%hash); #prints 1/8 here

猜你在找的Perl相关文章