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?
解决方法
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