มีหลายวิธีในการพิมพ์ขนาดของอาเรย์ นี่คือความหมายของทั้งหมด: สมมติว่าอาร์เรย์ของเราคือ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