=over =item $ARRAY_BASE =item $[ X<$[> X<$ARRAY_BASE> 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 B (or Fortran) when subscripting and when evaluating the index() and substr() functions. As of release 5 of Perl, assignment to C<$[> 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. Prior to Perl 5.10, assignment to C<$[> could be seen from outer lexical scopes in the same file, unlike other compile-time directives (such as L). Using local() on it would bind its value strictly to a lexical block. Now it is always lexically scoped. Mnemonic: [ begins subscripts. Deprecated in Perl 5.12. =back