Em Perl um array representa uma lista de valores indexados a partir de zero. Uma variável array tem o prefixo @ lembrando a palavra array (ou @rray,) assim como uma variável escalar tem o prefixo $ lembrando a palavra scalar (ou $calar). A seguir temos um exemplo de script contendo arrays.
- Design-time
use warnings;
use strict;
print uc("\nArray é uma variável que fornece armazenamento dinâmico para listas\n\n");
print "\t\t my \@frase = qw#Esta é 30 lista#;";
my @frase = qw#Esta é 30 lista#;
print "\nprint \@frase; \t\t\t";
print @frase;
print "\n\nNúmero de elementos:\t\tmy \$count = scalar \@frase;";
my $count = scalar @frase; #my $count = @frase;
print "\nprint \$count; \t\t\t";
print $count;
print "\n\nMaior índice:\t\t\tmy \$last = \$#frase;";
my $last = $#frase;
print "\nprint \$last; \t\t\t";
print $last;
print "\n\nPrimeiro elemento:";
print "\nprint \$frase[0]; \t\t";
print $frase[0]; #print @frase[0];
print "\n\nPrimeiro e terceiro elementos:";
print "\nprint \@frase[0,2]; \t\t";
print @frase[0,2];
print "\n\nÚltimo elemento:";
print "\nprint \$frase[\$last]; \t\t";
print $frase[$last];
print "\n\n\t\t my \@sub_frase = \@frase[0..2];";
my @sub_frase = @frase[0..2];
print "\nprint \@sub_frase; \t\t";
print @sub_frase;
print "\n\t\t \@sub_frase = \@frase[-2..-1];";
@sub_frase = @frase[-2..-1];
print "\nprint \@sub_frase; \t\t";
print @sub_frase;
print "\n\n\t\t my \@dia = qw(Seg Ter Qua Qui Sex Sab Dom);";
my @dia = qw(Seg Ter Qua Qui Sex Sab Dom);
print "\nprint \@dia; \t\t\t";
print @dia;
print "\n\$dia[0] = \"Segunda\"; \t\t";
$dia[0] = "Segunda";
print "\nprint \@dia; \t\t\t";
print @dia;
print "\n\@dia[1..\$#dia] = qw(Terça Quarta Quinta Sexta Sábado Domingo); \t\t";
@dia[1..$#dia] = qw(Terça Quarta Quinta Sexta Sábado Domingo);
print "\nprint \@dia; \t\t\t";
print @dia;
print "\n\n";
- Runtime
- Sintaxe
Observe nas primeiras linhas o uso do comando use para carregamento dos pragmas warnings e strict. Assim se providenciam avisos e captura de erros. A primeira consequência é a necessidade do uso da palavra-chave my precedendo o nome de uma variável sempre que esta for declarada dentro de um determinado escopo.
Em um contexto escalar, cada elemento do array pode ser obtido da seguinte forma:
$nome_do_array [ índice ]
onde índice vai de 0 até o valor retornado pela variável especial $#nome_do_array, que representa o último elemento do array.
Se optarmos por índices negativos, estes iriam de -($#nome_do_array + 1) até -1.
Também em contexto escalar, o número de elementos de um array pode ser obtido pelo próprio nome do array:
$nome_do_array
Observe com cuidado a listagem (design-time) e o script em execução (runtime) para esclarecer prováveis dúvidas e assim obter um completo entendimento.
- Reflexão – A História sempre se repete por causa da ignorância e da alienação
Desde sua primeira campanha eleitoral à presidência em 2018, quando bradava “Brasil acima de tudo, Deus acima de todos”, adaptação preferida pelos nazistas do verso “Deutschland über alles”, frequentemente o presidente Jair Bolsonaro faz referências ao slogan fascista “Deus, Pátria e Família”, ou às variantes “Deus, Pátria, Família e Liberdade” ou “Deus, Pátria, Família e Trabalho”. Samuel Johnson estava certo ao afirmar que “o patriotismo é o último refúgio do canalha”. Mas como bolsomínion mal sabe ler, cabem aqui algumas ilustrações.