Perhaps you misunderstand the "random hash change".

A hash will always have an internal ordering. As long as you aren't adding new keys, the keys and their values can be accessed by any of: (1) hashname in a list context, (2) each(), (3) keys(), and (4) values(), and the lists will remain consistent.

What got changed is how a given set of keys gets set into that order. Each time a new hash is created, a random value is associated with that hash, and it perturbs the hashing algorithm so that the ordering is mostly unpredictable.

So, existing programs that call keys() and values() in parallel can still work. What won't work is expecting the same set of keys in a new hash to be the same order as an old hash.

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.


In reply to Random Hash Understandings (was Re: Re: cgi input) by merlyn
in thread cgi input by Anonymous Monk

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.