- 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" '