Existem várias maneiras de imprimir o tamanho da matriz. Aqui estão os significados de todos: Vamos dizer que nossa matriz émy @arr = (3,4);
Método 1: escalar
Este é o caminho certo para obter o tamanho das matrizes.
print scalar @arr; # prints size, here 2
Método 2: número do índice
$#arr
fornece o último índice de uma matriz. portanto, se a matriz tiver tamanho 10, seu último índice será 9.
print $#arr; # prints 1, as last index is 1
print $#arr + 1; # Add 1 to last index to get array size
Estamos adicionando 1 aqui, considerando a matriz como indexada em 0 . Mas, se não for zero, então, essa lógica falhará .
perl -le 'local $[ = 4; my @arr=(3,4); print $#arr + 1;' # prints 6
O exemplo acima imprime 6, porque definimos seu índice inicial como 4. Agora, o índice seria 5 e 6, com os elementos 3 e 4, respectivamente.
Método 3:
Quando uma matriz é usada no contexto escalar, ela retorna o tamanho da matriz
my $size = @arr;
print $size; # prints size, here 2
Na verdade, o método 3 e o método 1 são iguais.
print 0+@arr
,print "".@arr
,print ~~@arr