Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
Can anyone tell me why my order of output is like this ? Unlikely.

For all practical purposes you cannot rely on the hash elements to be stored in any particular order. It depends on how many elements the hash has, on the value of the keys, and in recent Perl versions can be additionally randomized to prevent certain types of attacks.

The order of the elements as returned by the keys, each and values functions is not the order of insertion or follows the alphabet. The order produced by these three functions is however internally consistent (meaning you can iterate over keys and values separately and they will match).

You can sort the keys (for example) alphabetically if you need to do this, but you cannot recover the order of insertion.

This may seem inconvenient, but it is (a fundamental) part of how a hash works. It is not made to retrieve elements in a certain order, but it is very fast at single-element lookups. Testing if an element exists is for example much more efficient in a hash than in an array.


In reply to Re^2: the basic datatypes, three by Thilosophy
in thread the basic datatypes, three by root

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



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (2)
As of 2024-04-19 18:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found