Como obtener al azar un elemento de la matriz en Perl

La tarea. En el programa en el lenguaje de programación Perl tiene una matriz con los valores. Se debe obtener al azar un elemento de la matriz.

La solución de esta tarea en Perl es muy bella y elegante. Se utiliza la función rand() para obtener un índice aleatorio un elemento.

He aquí un ejemplo de código. Hay una matriz en la que halle la matriz con los colores. El código de muestra al azar el color de la matriz.

▶ Run
#!/usr/bin/perl

my @colors = ('red', 'green', 'blue', 'magenta', 'white');

my $color = $colors[ rand @colors ];

print $color;

Cómo funciona esto. Hay una matriz de @colors. En él hay 5elementos. Para tener acceso al primer elemento de la necesidad de escribir $colors[0], a la última — $colors[4].

En este ejemplo, rand @colors es lo mismo que rand(5). En este el uso de la matriz devuelve el número de elementos en la matriz. (escalar de contexto).

rand @colors devuelve el número de 0 (inclusive) hasta el número de 5 (pero no incluyendo este número). Por ejemplo, el resultado de esta operación puede ser el número de 3.70744988833152.

Y el último paso. El resultado de la rand @colors se utiliza como un índice de la matriz. Es decir, resulta algo así como $colors[ 3.70744988833152 ]. Esta la entrada devuelve exactamente el mismo elemento de la matriz como la entrada de $colors[3], es decir, el cuarto elemento es una cadena de 'magenta'.

Temas relacionados

Otros articulos