I'm having trouble debugging a heavily random program because I'm unable to force it to repeat its behavior.
After reading perlrun and web-searching a bit I concluded that the following snippet at the top of the program might do the trick:
In addition to calling rand() to choose an array index, it also traverses lists of key(%hash). As far as I know, those are the only places where randomness can occur. (No hashes are modified after they're constructed at initialization.)#!/usr/bin/env perl use v5.36; BEGIN { srand(1); # rand generator is repeatable $ENV{PERL_PERTURB_KEYS}=0; # traversing keys is repeatable $ENV{PERL_HASH_SEED}=1; # hashing is repeatable? }
I gather from perldoc perlrun ("this mode is as close to pre 5.18 behavior as you can get.") that perhaps there are no guarantees anymore?
Can anyone suggest what I might be doing wrong or overlooking?
In reply to Repeatable rand() and keys() for debugging by ibm1620
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |