http://www.perlmonks.org?node_id=774064


in reply to Re: why the array index has to start at 0??
in thread why the array index has to start at 0??

It was something to do with boudary checks

If you want to check if a value X is in [0,N) — something that must be done very often — X % N == N will do. If N is a power of two, simpler X >> log(N) would do.

If on the other hand you were using 1-based indexes, you'd have to check if X is in [1,N], and that would require (X-1) % N == (X-1).

Many more operations are simply more natural with 0-based indexes. See Re^3: why the array index has to start at 0?? for some real-life examples.