hash_traversal_mask#

Read or set the per-hash bucket-traversal mask used by keys, values, and each.

Synopsis#

my $mask = hash_traversal_mask(%hash); hash_traversal_mask(%hash, 1234);

Every hash carries a U32 mask that is XOR’d with each bucket index during iteration, so two hashes with the same contents still visit their keys in different orders. Called with one argument, the function returns the current mask. Called with two, it sets the mask — pinning the iteration order of that particular hash for reproducible test output.

Pinning the mask does not make two different hashes iterate identically: keys that collide into the same bucket may still appear in different orders because chain order depends on insertion history.

Currently returns 0 in pperl and ignores any set value; the pperl hash table does not expose a per-hash traversal mask.