camel 配列の先頭要素が「0番目」であることは気持ち悪いか…「N番目」という言葉を考察してみる - ’(rubikitch wanna be (a . lisper))
JavascriptやPHPの配列や関数などで 配列の最初の要素がary[0]に格納されたりsubstring()関数の起点がゼロであったりしますが ゼロでなく1ではダメなのでしょうか。個人的.. - 人力検索はてな

C言語、Ruby、Lispなど多くの言語では配列は0起点である。つまり、先頭の要素のインデックスは0である。

小飼弾のアルファギークに逢ってきた」でも、インタビューは#0からはじまっているのだけど、これを自由に設定できてしまう類い稀なる言語が存在する。

perlだ。

あまり知られていない特殊変数$[に整数をセットすると、それが配列の起点となる。

[codepad]
my @ary = (0..7);
print "\$ary[$_] = $ary[$_]\n" for (0..7);
{
  local $[ = 1;
  print "\$ary[$_] = $ary[$_]\n" for (1..8);
}
perldoc perlvar
$[     The index of the first element in an array, and of the first
       character in a substring.  Default is 0, but you could
       theoretically set it to 1 to make Perl behave more like awk (or
       Fortran) when subscripting and when evaluating the index() and
       substr() functions.  (Mnemonic: [ begins subscripts.)

       As of release 5 of Perl, assignment to $[ is treated as a
       compiler directive, and cannot influence the behavior of any
       other file.  (That’s why you can only assign compile‐time
       constants to it.)  Its use is highly discouraged.

       Note that, unlike other compile‐time directives (such as
       strict), assignment to $[ can be seen from outer lexical scopes
       in the same file.  However, you can use local() on it to
       strictly bind its value to a lexical block.

見てのとおり、Its use is highly discouraged.とある。よいこは使わない方がよいだろう。a2p(awkスクリプトをperlに翻訳するプログラム;perlをインストールするともれなく付いてくる)以外に用途不明ではあるが、$へえ++ぐらいにはなるかも知れない。

Dan the Perl Monger