in reply to Re: (tye)Re: random passgen
in thread random passgen

~0 is bit-wise compliment of 0, that is, it gives back an unsigned integer with all bits 1 (since 0 has all bits 0). So rand(~0) gives you a random number between 0 and the largest unsigned integer value. This gives you about 32 bits of randomness from the seed that Perl probably already chose for you to add in with the seed that you chose.

It should really be rand(1+~0) since the ^ that follows converts to the floating-point value returned by rand() into an unsigned integer which means that the possible values used in the ^ are only from 0..(~0-1).

        - tye (but my friends call me "Tye")