Actually I've checked output for perl -V :
$ perl -V | grep SEED
PERL_HASH_SEED="-1"
But setting the PERL_HASH_SEED env variable has no effect at all. Using this script :
#!/usr/bin/perl
use strict;
use warnings;
use Hash::Util qw(hash_seed);
my %t=qw( a A b B c C d D e E f F );
print hash_seed() . "\n";
print join( '', %t) ."\n";
I change the PERL_HASH_SEED, the hash_seed differs from run to run, but the hash order remains the same:
$ for i in -1 0 1 42 garbage; do export PERL_HASH_SEED=$i; for j in 1
+2 3; do perl test.pl; done; done
3657515954
eEcCaAbBdDfF
3070542819
eEcCaAbBdDfF
185686570
eEcCaAbBdDfF
0
eEcCaAbBdDfF
0
eEcCaAbBdDfF
0
eEcCaAbBdDfF
1
eEcCaAbBdDfF
1
eEcCaAbBdDfF
1
eEcCaAbBdDfF
42
eEcCaAbBdDfF
42
eEcCaAbBdDfF
42
eEcCaAbBdDfF
3381895560
eEcCaAbBdDfF
2632524130
eEcCaAbBdDfF
1729561246
eEcCaAbBdDfF
The hash seed has no effect, that sucks!
|