<?xml version="1.0" encoding="windows-1252"?>
<node id="615452" title="Re: Seeking explanation on assigning a hash to a scalar" created="2007-05-14 23:53:39" updated="2007-05-14 19:53:39">
<type id="11">
note</type>
<author id="460657">
Samy_rio</author>
<data>
<field name="doctext">
&lt;p&gt;Hi [jesuashok], It means "Number of used buckets and the number of allocated buckets, separated by a slash." ( Ex.: 4/8 ).&lt;/p&gt;
&lt;p&gt;In &lt;c&gt;\html\lib\Pod\perldata.html&lt;/c&gt;, description as,&lt;p&gt;
&lt;p&gt;&lt;i&gt;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. This isn't supposed to happen.&lt;br&gt;
&lt;br&gt;
You can preallocate space for a hash by assigning to the keys() function. This rounds up the allocated buckets to the next power of two:
&lt;br&gt;&lt;br&gt;
    keys(%users) = 1000;                # allocate 1024 buckets&lt;/i&gt;&lt;/p&gt;
&lt;!-- Node text goes above. Div tags should contain sig 
only --&gt;
&lt;div class="pmsig"&gt;&lt;div class="pmsig-460657"&gt;
&lt;p&gt;Regards,&lt;br&gt;Velusamy R.&lt;hr&gt;&lt;c&gt;eval"print uc\"\\c$_\""for split'','j)@,/6%@0%2,`e@3!-9v2)/@|6%,53!-9@2~j';&lt;/c&gt;&lt;/p&gt;

&lt;/div&gt;&lt;/div&gt;</field>
<field name="root_node">
615449</field>
<field name="parent_node">
615449</field>
</data>
</node>
