此變數儲存陣列中第一個元素的索引,以及子字串中第一個字元的索引。預設值為 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 中棄用。