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
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|