Programming Tips - What's the nicest way to get the size of a perl array?

Date: 2008may21 Language: perl Keywords: length, numer of elements, count Q. What's the nicest way to get the size of a perl array? A. Tutorials usually use the # operator. If @a is an array $#a will give one less than the size of the array. The upper index. But I prefer using scalar(@a) which da-da give the exact size of the array. Much nicer. For example:
@a = qw(one two three); $n = $#a + 1; print "There are $n elements in the array\n"; $n = scalar(@a); print "There are $n elements in the array\n"; # In a loop $# is fine... for ($i = 0; $i <= $#a; $i++) { print "$a[$i]\n"; } # But checking if an array is empty, scalar is clearer... if (scalar(@a) > 0) { # Non-empty } if ($#a >= 0) { # Non-empty } # Checking that an array has the required 5 elements, scalar is much # clearer... if (scalar(@a) == 5) { # got em } if ($#a == 4) { # Yes, got all 5 - huh? }