• Publicidad

Crear random alfanúmerico

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Crear random alfanúmerico

Notapor Richo » 2005-11-17 10:14 @468

HOLA A TODOS, NECESITO SABER SI HAY ALGUNA MANERA DE GENERAR 12 CARACTERES ALFANUMERICOS EN PERL, YA QUE LA FUNCION SRAND SOLO DEVUELVE NUMEROS, MUCHAS GRACIAS POR LA AYUDA
Richo
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2005-08-30 09:46 @448

Publicidad

Notapor explorer39 » 2005-11-17 11:28 @519

Código: Seleccionar todo
perl -le ' @c = ( 'A' .. 'Z', 0 .. 9 ); print map { $c[ rand @c ] } 1..12 '

Formas hay muchas... :-)
Esta es una de ellas:
Creamos el vector @c que contenga las letras que formarán nuestro código. Puede ser cualquier combinación de letras, números, etc., pero lo más rápido es decirle que nos cree un vector con tantos elementos existan desde la 'A' hasta (..) la 'Z' y desde el '0' hasta el '9'.
Luego hacemos un bucle del 1 al 12 y por cada uno de ellos hacemos un map, que lo que hace es ejecutar su contenido, que es sacar la letra del vector @c ($c[]) correspondiente a la posición calculada de sacar un valor aleatorio (rand) entre 0 (incluído) y el número de valores que contenga el vector @c (excluído) (@c está ahí en modo escalar y nos devuelve ese número).
Como las posiciones del vector cuentan también desde 0, pues el resultado será una de las letras del vector, desde la primera a la última.
Al final, map devuelve, como vector, las 12 letras a print, que a su vez lo sacará por pantalla todas juntas (por defecto de cómo se pinta un vector en pantalla) y al final, un retorno de carro (-l).
Esta es otra forma de verlo:
Código: Seleccionar todo
perl -e ' @c = ( 'A' .. 'Z', 0 .. 9 ); foreach ( 1 .. 12 ) { print $c[ rand(@c) ] } print "\n" '
explorer39
 


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados