Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re^2: random behaviour of perl hashes

by gellyfish (Monsignor)
on Aug 28, 2006 at 08:00 UTC ( [id://569943]=note: print w/replies, xml ) Need Help??


in reply to Re: random behaviour of perl hashes
in thread random behaviour of perl hashes

As lima1 pointed out this behaviour has been deliberately changed as of the perl 5.8.*, I get this with 5.8.1:

[jonathan@orpheus jonathan]$ perl foo.pl potatos diced pepper fresh salt shaken paprika spicy onions diced [jonathan@orpheus jonathan]$ perl foo.pl pepper fresh potatos diced onions diced paprika spicy salt shaken [jonathan@orpheus jonathan]$ perl foo.pl salt shaken paprika spicy onions diced potatos diced pepper fresh
but yes it would be a mistake to rely on an any hash ordering behaviour in a programme.

/J\

Replies are listed 'Best First'.
Re^3: random behaviour of perl hashes
by swampyankee (Parson) on Aug 28, 2006 at 20:48 UTC

    I get this running ActiveState's 5.8.8 (build 817):

    Case 1 salt shaken onions diced pepper fresh paprika spicy potatos diced Case 2 salt shaken onions diced pepper fresh paprika spicy potatos diced Case 3 salt shaken onions diced pepper fresh paprika spicy potatos diced

    I suspect that it has to do with the details of the implementation of the hashing algorithm, which may differ from system to system.

    My interpretation of the "random ordering" in the perldocs is simply that "we refuse to guarantee the order of the keys for a hash".

    emc

    Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.

    Albert Einstein
      According to "perlrun":

      The default behaviour is to randomise unless the PERL_HASH_SEED is set. If Perl has been compiled with "-DUSE_HASH_SEED_EXPLICIT", the default behaviour is not to randomise unless the PERL_HASH_SEED is set.

      perhaps ActiveState Perl is compiled with -DUSE_HASH_SEED_EXPLICIT ?

      perl -V
      might tell you whether that is the case.

      Liz

        perl -v returns (among many other data):

        -GF -W3 -MD -Zi
        -DNDEBUG -O1 -DWIN32
        -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT
        -DNO_HASH_SEED
        -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT
        -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX

        It would seem not, unless -DNO_HASH_SEED has a similar effect.

        emc

        Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.

        Albert Einstein

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (1)
As of 2024-04-25 04:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found