in reply to Re^5: Getting srand's seed
in thread Getting srand's seed
use Math::Random::MT qw(srand rand); sub seed_prng { # Seed the pseudo random number generator with a random or specified + seed # Returns what seed value is used my ($seed) = shift; if (not defined $seed) { # Want to produce an random unsigned 32-bit integer to feed to # Math::Random::MT::srand(). That means, first seed srand() with a + temporary # seed that varies quickly in time so we don't get twice the same +seed if we # request several seeds in a short interval of time. my $tmp_seed = time ^ ($$ + ($$ << 15)); # shown in srand's doc srand($tmp_seed); my $max = int(2**32-1); # Largest unsigned 32-bit integer $seed = int(rand($max+1)); # An integer between 0 and $max } srand($seed); return $seed; }
|
|---|