I have adopted the convention of using $#... when I actually mean "index of the last element" and @... when I mean a "count" of elements. A very small advantage is that this does not depend on the default value of "$[". (I have not used that in since I got over my FORTRAN habits years ago)
Yeah, I guess the multiplier really is "one less than the number of array elements". Thank you for satisfying my curiosity.
... the default value of "$[".
In Perl 5, changes to $[ have been increasingly constrained over the years and in the most recent versions are completely disabled, but I still can't help thinking when I write something like 0 .. $#ra to list all possible indices of an array that I should perhaps really be writing $[ .. $#ra instead.