in reply to why the array index has to start at 0??
It's works cleanly with so many constructs, like ...
with mod operator, for ring buffers:
with rand():$buffer[$i++ % $SIZE] = $foo;
I'm sure we could come up with many others. Natural, no?$pick = $array[rand(@array)];
ZeroFoo
In Section
Seekers of Perl Wisdom