From: Jarkko Hietaniemi Date: Fri, 27 Jun 2003 08:54:16 +0000 (+0000) Subject: Some warnings about the (im)proper uses of the hash randomisation. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=7b3f70378c41657f3e0c917f322e2cda58f33b5e;p=p5sagit%2Fp5-mst-13.2.git Some warnings about the (im)proper uses of the hash randomisation. p4raw-id: //depot/perl@19866 --- diff --git a/pod/perlsec.pod b/pod/perlsec.pod index 92853dd..41f9669 100644 --- a/pod/perlsec.pod +++ b/pod/perlsec.pod @@ -417,6 +417,19 @@ consecutive runs of Perl will order hash keys differently, which may confuse some applications (like Data::Dumper: the outputs of two different runs are no more identical). +B, 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. + +Also note that while the order of the hash elements might be +randomised, this "pseudoordering" should B be used for +applications like shuffling a list randomly (use List::Util::shuffle() +for that, see L, a standard core module since Perl 5.8.0; +or the CPAN module Algorithm::Numerical::Shuffle), or for generating +permutations (use e.g. the CPAN modules Algorithm::Permute or +Algorithm::FastPermute), or for any cryptographic applications. + =item * Regular expressions - Perl's regular expression engine is so called