This variable stores the index of the first element in an array, and of the first character in a substring. The 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.

この変数は配列の最初の要素や、文字列の最初の文字のインデックスを 保管します。 デフォルトは 0 ですが、理論的には、index() 関数や substr() 関数を評価するときに、Perl の動作をより awk (や Fortran) に近づけるため、1 に設定することもできます。

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.

Perl 5 からは $[ への代入は、コンパイラ指示子として扱われ、 他のファイルの動作に影響を与えることがなくなりました。 (これが、コンパイル時定数しか代入できない理由です。) この変数の使用は非推奨です。

Prior to Perl v5.10.0, assignment to $[ could be seen from outer lexical scopes in the same file, unlike other compile-time directives (such as strict). Using local() on it would bind its value strictly to a lexical block. Now it is always lexically scoped.

Perl v5.10.0 より前では、$[ は(strict のような)その他のコンパイル時 指示子と異なり、同じファイルのレキシカルスコープの外側から見ることが 出来ていました。 これに local() を使うとこの値を厳密にレキシカルスコープの内側に限定します。 今では常にレキシカルスコープを持ちます。

As of Perl v5.16.0, it is implemented by the arybase module.

Perl v5.16.0 から、これは arybase モジュールで実装されています。

As of Perl v5.30.0, or under use v5.16, or no feature "array_base", $[ no longer has any effect, and always contains 0. Assigning 0 to it is permitted, but any other value will produce an error.

Perl v5.30.0 以降か、use v5.16 または no feature "array_base" の基では、 $[ はもはや何の効果もなく、常に 0 が入っています。 これに 0 を代入することは許されますが、それ以外の値はエラーを引き起こします。

Mnemonic: [ begins subscripts.

記憶法: [ は添え字付けの始め。

Deprecated in Perl v5.12.0.

Perl v5.12.0 で非推奨となりました。