這個陣列儲存最後一次成功配對的開頭偏移量以及它包含的任何擷取緩衝區。(請參閱 "Regex 變數的範圍規則").
它包含的元素數量將比實際配對到某個項目的最高擷取緩衝區(也稱為子群組)數量多一個。(與可能元素較少的 @+
相反)。
$-[0]
是最後一次成功配對開頭的偏移量。$-[n]
是由第 n 個子模式配對的子字串開頭的偏移量,或者如果子模式沒有配對到,則為未定義。
因此,在對 $_
配對後,$&
與 substr $_, $-[0], $+[0] - $-[0]
相同。類似地,如果 $-[n]
已定義,則 $n
與 substr $_, $-[n], $+[n] - $-[n]
相同,而 $+
與 substr $_, $-[$#-], $+[$#-] - $-[$#-]
相同。可以使用 $#-
來尋找最後一次成功配對中的最後一個配對子群組。與 $#+
(正規表示式中的子群組數量) 相反。
$-[0]
是整個配對開頭的字串偏移量。這個陣列的第 n 個元素儲存第 n 個子配對的偏移量,因此 $-[1]
是 $1
開頭的偏移量,$-[2]
是 $2
開頭的偏移量,依此類推。
與某個變數 $var
進行比對後
$`
等於 substr($var, 0, $-[0])
$&
等於 substr($var, $-[0], $+[0] - $-[0])
$'
等於 substr($var, $+[0])
$1
等於 substr($var, $-[1], $+[1] - $-[1])
$2
等於 substr($var, $-[2], $+[2] - $-[2])
$3
等於 substr($var, $-[3], $+[3] - $-[3])
此變數為唯讀,其值為動態範圍。
此變數於 Perl v5.6.0 中新增。