Como acessar um item Perl

Tarefa. Em Perl programa, existe uma matriz. Você precisa ler o valor de um dos elementos dessa matriz.

Aqui está um exemplo de como fazer isso:

▶ Run
#!/usr/bin/perl

my @arr = ('one', 'two', 'three');

print $arr[1];

Se você salvar o texto desse programa no arquivo script.pl e executar perl script.pl, então a aparecer no texto two.

Então, o que está acontecendo aqui.

Primeiro criamos um array com o nome de @arr. A variável de matriz começa com um caractere de @, este símbolo é semelhante ao primeiro letra da palavra "matriz". Nós criamos uma matriz e a encheram com 3 elementos. No nosso exemplo, todos os 3 elementos é de comando, mas, geralmente, dentro de um array podem ser elementos completamente diferentes tipos, como, por exemplo, cadeias de caracteres, números e links.

Cada item em uma matriz tem seu próprio número de série. Este número é chamado de "índice". Na linguagem de programação Perl, como em muitas outras linguagens de programação, os elementos de um array começam a нумероваться com o número 0. No exemplo da matriz contém 3 elementos:

  • linha 'one' é um elemento de uma matriz com um índice 0
  • linha 'two' é um elemento de uma matriz com um índice 1
  • linha 'three' é um elemento de uma matriz com um índice 2

Para acessar um item do array com um índice de 1 precisa escrever $arr[1]. Escrevemos o nome da matriz e na praça entre parênteses escrevemos o índice do elemento que precisamos receber. Note-se a uma característica. Quando nos voltamos para um elemento de matriz, em vez de um símbolo @ em nome da matriz, se você desejar escrever um caractere $ (cifrão, símbolo semelhante ao primeiro letra na palavra "escalar"). A ideia era que quando uma conta de nós, obviamente, enfatizamos que precisamos de um valor, mas, na minha opinião, este é um erro no projeto idioma. Não é nada fácil, e vice-versa tornou tudo mais difícil. Em uma linguagem de programação Perl6 é corrigido, mas em Perl5 ao acessar um elemento de uma matriz deve ser usada para o sinal de dólar $: $arr[1].

Contactar o último item em uma matriz

Quando você cria uma matriz @arr automaticamente aparece a variável $#arr que contém o índice do último elemento. Ao adicionar/remover itens de uma matriz de valores para esta variável muda automaticamente (e até mais gravar o número a esta variável).

Para acessar o último elemento de um array pode utilizar a entrada de $arr[$#arr]. Mas conveniente usar $arr[-1]. Índice de -1 indica o índice do último elemento em uma matriz, o índice de -2 — penúltimo e т. д.

De uma maneira errada

Aqui está um exemplo de código (cuidado, aqui contém erro):

▶ Run
#!/usr/bin/perl

my @arr = ('one', 'two', 'three');

print @arr[1]; # error

Esta opção é exatamente o mesmo como um direito, mas em vez do correto tratamento para o elemento de matriz com $arr[1]aqui é usado @arr[1].

Se você salvar o texto desse programa no arquivo script.pl e executá-lo perl script.pl, aparece o texto two. Linha 'two', é realmente um elemento com índice de 1 na matriz @arr, de modo que, à primeira vista, o erro, não pode ser visto.

Mas se você adicionar o código do programa linha de use warnings; (que quase sempre vale a pena fazer), então a saída do programa será visto aviso:

Scalar value @arr[1] better written as $arr[1] at script.pl line 7.
two

O formulário de entrada @arr[ ] é a obtenção de vários valores de uma matriz. Isso é chamado de "corte". Alguns exemplos:

  • @arr[1,2] — retorna uma lista de dois elementos, os elementos de um array com os índices 1 e 2
  • @arr[0..2] — retorna uma lista de três elementos, os elementos de um array com os índices 0, 1 e 2
  • @arr[1, 1] — retorna uma lista de dois elementos, repete o elemento de índice 1 duas vezes

A entrada @arr[1] — retorna uma lista de um elemento, mais emite um aviso.

A entrada @arr[1,] — retorna uma lista de um elemento sem exibir um aviso.

Se você precisa de um valor de um elemento de uma matriz, é melhor escrever $arr[1].

Temas relacionados

Outros artigos