Como obter o acaso um elemento de uma matriz em Perl

Tarefa. Em um programa na linguagem de programação Perl tem uma matriz com os valores. Você deve obter o acaso item desta matriz.

A solução desta tarefa, o Perl é muito bonito e elegante. Utilizar a função rand() para obter acidental índice o item.

Aqui está um exemplo de código. Há uma matriz onde está a matriz com as cores. O código exibe uma cor aleatória a partir dessa matriz.

▶ Run
#!/usr/bin/perl

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

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

print $color;

Como isso funciona. Há uma série de @colors. Nele há 5elementos. Para entrar para o primeiro item da necessidade de escrever $colors[0], a última — $colors[4].

Neste exemplo, rand @colors é igual a todos os que rand(5). Quando tal utilização de uma matriz retorna o número de elementos na matriz. (quantum contexto).

rand @colors retorna o número de 0 (inclusive) até o número de 5 (mas não inclusive é um número). Por exemplo, o resultado desta operação pode ser o número de 3.70744988833152.

E o último passo. O resultado rand @colors é usado como um índice da matriz. Т. е. acontece algo parecido $colors[ 3.70744988833152 ]. Esta o registro obtém exatamente o mesmo elemento da matriz como entrada $colors[3], т. е. o quarto elemento linha 'magenta'.

Temas relacionados

Outros artigos