You have easy access to the full source code and you have a string that is not hard to search for. But, when you get an error message that doesn't make enough sense to you, you can also just check perldiag, which says:
(F) When trying to initialise the random seed for hashes, Perl could not get any randomness out of your system. This usually indicates Something Very Wrong.
Which means you need to go look at the source code anyway. It was very easy for me to find this:
UV
Perl_get_hash_seed(pTHX)
{
dVAR;
const char *s = PerlEnv_getenv("PERL_HASH_SEED");
UV myseed = 0;
if (s)
while (isSPACE(*s))
s++;
if (s && isDIGIT(*s))
myseed = (UV)Atoul(s);
else
#ifdef USE_HASH_SEED_EXPLICIT
if (s)
#endif
{
/* Compute a random seed */
(void)seedDrand01((Rand_seed_t)seed());
myseed = (UV)(Drand01() * (NV)UV_MAX);
#if RANDBITS < (UVSIZE * 8)
/* Since there are not enough randbits to to reach all
* the bits of a UV, the low bits might need extra
* help. Sum in another random number that will
* fill in the low bits. */
myseed +=
(UV)(Drand01() * (NV)((((UV)1) << ((UVSIZE * 8 - RANDBI
+TS))) - 1)
»);
#endif /* RANDBITS < (UVSIZE * 8) */
if (myseed == 0) { /* Superparanoia. */
myseed = (UV)(Drand01() * (NV)UV_MAX); /* One more chanc
+e. */
if (myseed == 0)
Perl_croak(aTHX_ "Your random numbers are not that r
+andom");
}
}
PL_rehash_seed_set = TRUE;
return myseed;
}
Which suggests that a quick, temporary work-around might be to put some integer into your PERL_HASH_SEED environment variable.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|