Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: Hash ordering

by dsheroh (Monsignor)
on Apr 14, 2020 at 09:40 UTC ( #11115512=note: print w/replies, xml ) Need Help??


in reply to Hash ordering

Not only is the order of hash keys random by nature, Perl 5.8.1 introduced changes to ensure that a given hash's keys would come up in a different order on each run of the program for security reasons:
Mainly due to security reasons, the "random ordering" of hashes has been made even more random. Previously while the order of hash elements from keys(), values(), and each() was essentially random, it was still repeatable. Now, however, the order varies between different runs of Perl.

Perl has never guaranteed any ordering of the hash keys, and the ordering has already changed several times during the lifetime of Perl 5. Also, the ordering of hash keys has always been, and continues to be, affected by the insertion order.

- Perl 5.8.1-RC4 release notes, emphasis in original

Replies are listed 'Best First'.
Re^2: Hash ordering
by haukex (Bishop) on Apr 14, 2020 at 10:29 UTC
    Perl 5.8.1 introduced changes to ensure that a given hash's keys would come up in a different order on each run of the program

    In addition, in 5.18 further changes were made. From Hash overhaul:

    By default, two distinct hash variables with identical keys and values may now provide their contents in a different order where it was previously identical. ... the order which keys/values will be returned from functions like keys(), values(), and each() will differ from run to run. ... Further, every hash has its own iteration order, which should make it much more difficult to determine what the current hash seed is.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://11115512]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (4)
As of 2020-10-20 09:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My favourite web site is:












    Results (209 votes). Check out past polls.

    Notices?