当Perl 5.8.1发布时,它添加了hash randomization。我认为,当Perl 5.8.2发布时,除非存在环境变量(PERL_HASH_SEED
),否则它将删除哈希随机化。现在看来,我好像被严重误认为
PERL_HASH_SEED=$SEED perl -MData::Dumper -e 'print Dumper{map{$_,1}"a".."z"}'
无论
$SEED
的值如何,总是取消相同的键顺序。哈希随机化完全消失了吗,我做错了还是这是一个错误?
最佳答案
参见Algorithmic Complexity Attacks:
因此,随机化并不总是发生的,只有当perl检测到需要随机化时才发生。