Esistono vari modi per stampare le dimensioni dell'array. Ecco i significati di tutti: diciamo che il nostro array èmy @arr = (3,4);
Metodo 1: scalare
Questo è il modo giusto per ottenere dimensioni delle matrici.
print scalar @arr; # prints size, here 2
Metodo 2: numero indice
$#arr
fornisce l'ultimo indice di un array. quindi se la matrice ha dimensioni 10, il suo ultimo indice sarebbe 9.
print $#arr; # prints 1, as last index is 1
print $#arr + 1; # Add 1 to last index to get array size
Stiamo aggiungendo 1 qui considerando l'array come 0-indicizzato . Ma, se non è basato su zero, questa logica fallirà .
perl -le 'local $[ = 4; my @arr=(3,4); print $#arr + 1;' # prints 6
L'esempio sopra stampa 6, perché abbiamo impostato il suo indice iniziale su 4. Ora l'indice sarebbe 5 e 6, con gli elementi 3 e 4 rispettivamente.
Metodo 3:
Quando una matrice viene utilizzata in un contesto scalare, restituisce la dimensione della matrice
my $size = @arr;
print $size; # prints size, here 2
In realtà il metodo 3 e il metodo 1 sono uguali.
print 0+@arr
,print "".@arr
,print ~~@arr