in reply to Perl's Bad Ideas

I believe one of its intended purposes was to allow for predefining the length of an array. So the '#' is symbolic of, 'number' of elements you want it to have:
use Data::Dumper; my @test; $#test = 20; print Dumper(\@test); print $#test , "\n";
When used in a void syntax (verbiage?) it simply returns the current number of elements.

That doesn't mean I like it anymore or less then you do.