Існують різні способи друку розміру масиву. Ось значення усіх: Скажімо, наш масив єmy @arr = (3,4);
Спосіб 1: скалярний
Це правильний спосіб отримати розмір масивів.
print scalar @arr; # prints size, here 2
Спосіб 2: Номер індексу
$#arr
дає останній індекс масиву. тож якщо масив розміром 10, то його останнім індексом буде 9.
print $#arr; # prints 1, as last index is 1
print $#arr + 1; # Add 1 to last index to get array size
Ми додаємо тут 1, вважаючи масив як 0-індексованим . Але, якщо на її основі не нульове значення, то ця логіка вийде з ладу .
perl -le 'local $[ = 4; my @arr=(3,4); print $#arr + 1;' # prints 6
Наведений вище приклад 6 друкує, тому що ми встановили його початковий індекс на 4. Тепер індекс буде 5 та 6, з елементами 3 та 4 відповідно.
Спосіб 3:
Коли масив використовується в скалярному контексті, він повертає розмір масиву
my $size = @arr;
print $size; # prints size, here 2
Насправді метод 3 та метод 1 однакові.
print 0+@arr
,print "".@arr
,print ~~@arr