此变量存储数组中第一个元素的索引,以及子字符串中第一个字符的索引。默认值为 0,但理论上可以将其设置为 1,以使 Perl 在进行下标运算以及评估 index() 和 substr() 函数时,行为更像 awk(或 Fortran)。
从 Perl 5 版本开始,对 $[
的赋值被视为编译器指令,无法影响任何其他文件的行为。(这就是为什么你只能为它赋值编译时常量。)强烈建议不要使用它。
在 Perl v5.10.0 之前,对 $[
的赋值可以在同一个文件中的外部词法作用域中被看到,这与其他编译时指令(例如 strict)不同。对它使用 local() 会将它的值严格地绑定到词法块。现在它始终是词法作用域的。
从 Perl v5.16.0 开始,它由 arybase 模块实现。
从 Perl v5.30.0 开始,或者在 use v5.16
或 no feature "array_base"
下,$[
没有任何效果,并且始终包含 0。允许将其赋值为 0,但任何其他值都会产生错误。
助记符:[ 开始下标。
在 Perl v5.12.0 中已弃用。