Perl's hashing algorithm computes a 32 bit number and then does a shift trick that could result in the hashing starting to collide more often after about 100,000,000 elements. Of course if you are hashing that much stuff you are likely to run into issues with the fact that Perl's process is (even on 64-bit systems) unable to handle more than about 2 GB of memory (assuming you have that much available between RAM and swap).

If this is an issue you can tie to a tempfile using DB_File and that is fine for data sets up to your available disk space, your filesize (on many systems that is 2 GB) or IIRC about 100 terabytes (depending on how Berkeley DB was compiled).

If you have only a 100,000 or so keys in your hash, I wouldn't worry about it. :-)


In reply to Re (tilly) 1: Any limit to large hashes? by tilly
in thread Any limit to large hashes? by Dogg

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.