Tengo un script Perl que me da una cadena de 50 caracteres de números aleatorios, letras y algunos caracteres especiales. Los estoy ingresando en una base de datos. Ahora, dada la longitud de la cadena y la cantidad de caracteres, no creo que los duplicados se creen fácilmente.Rand() no es tan aleatorio en Perl
Aquí está la pepita ingeniosa de código que crea la cadena:
my $random_id='';
my @c = ("A" .. "Z", "a" .. "z", 0 .. 9, qw(! @ $ %^& *));
$random_id = join '', map $c[rand @c] , 1 .. 50;
Produce cadenas como:
C1Qt8L7E7QUD% lkxnh9yjZ2njF0iMj 1o^4DmTbVNhQB9% DKE @
El El problema es que duplicará una cadena exacta de vez en cuando entre las únicas, y más de una vez en algunas cadenas. Y esto está fuera de decir 20 cuerdas. Es extraño. Puedo solucionarlo y encontrar una solución ... pero esto me deja perplejo un poco. Me gustaría saber por qué. ¿Alguien tiene una idea?
Hola Paul. ¡Gracias por el comentario! – DataHerder
Woops ... no pude responder. Si cambio rand() a srand(), ahora produce simplemente BBBBBBBBBBB .. cada vez. :/ – DataHerder
perl 5.1 por cierto, – DataHerder