Có nhiều cách khác nhau để in kích thước của mảng. Dưới đây là ý nghĩa của tất cả: Hãy nói rằng mảng của chúng tôi làmy @arr = (3,4);
Cách 1: vô hướng
Đây là cách đúng để có được kích thước của mảng.
print scalar @arr; # prints size, here 2
Phương pháp 2: Số chỉ mục
$#arr
đưa ra chỉ số cuối cùng của một mảng. vì vậy nếu mảng có kích thước 10 thì chỉ số cuối cùng của nó sẽ là 9.
print $#arr; # prints 1, as last index is 1
print $#arr + 1; # Add 1 to last index to get array size
Chúng tôi đang thêm 1 ở đây xem xét mảng là 0-index . Nhưng, nếu nó không bằng 0 thì logic này sẽ thất bại .
perl -le 'local $[ = 4; my @arr=(3,4); print $#arr + 1;' # prints 6
Ví dụ trên in 6, vì chúng tôi đã đặt chỉ mục ban đầu của nó thành 4. Bây giờ chỉ mục sẽ là 5 và 6, với các yếu tố 3 và 4 tương ứng.
Cách 3:
Khi một mảng được sử dụng trong ngữ cảnh vô hướng, thì nó trả về kích thước của mảng
my $size = @arr;
print $size; # prints size, here 2
Thật ra phương pháp 3 và phương pháp 1 giống nhau.
print 0+@arr
,print "".@arr
,print ~~@arr