傳回變數中最後一個 m//g
搜尋離開的位置偏移量(當未指定變數時會使用 $_
)。此偏移量以字元為單位,除非啟用了(不再建議使用的)use bytes
pragma,否則偏移量會以位元組為單位。請注意,0 是有效的比對偏移量。 undef
表示搜尋位置已重設(通常是因為比對失敗,但也有可能是因為尚未對純量執行任何比對)。
pos
直接存取正規表示式引擎用來儲存偏移量的位址,因此指定給 pos
會變更該偏移量,也會影響正規表示式中的 \G
零寬度斷言。這兩個效果都會在下次比對中發生,因此您無法在目前的比對中使用 pos
來影響位置,例如在 (?{pos() = 5})
或 s//pos() = 5/e
中。
設定 pos
也會重設「以零長度比對」旗標,詳情請參閱 perlre 中的「重複模式比對零長度子字串」。
由於失敗的 m//gc
比對不會重設偏移量,因此 pos
的傳回值在此情況下也不會變更。請參閱 perlre 和 perlop。