類似於 @+
,%+
散列允許存取命名擷取緩衝區(如果存在),在目前動態範圍中最近一次成功匹配中。(請參閱 "Regex 變數的範圍規則")。
例如,在以下匹配後,$+{foo}
等於 $1
'foo' =~ /(?<foo>foo)/;
%+
散列的鍵僅列出已擷取(因此與已定義值關聯)的緩衝區名稱。
如果多個不同的擷取群組具有相同名稱,則 $+{NAME}
將參照匹配中最左邊已定義的群組。
%+
的底層行為是由 Tie::Hash::NamedCapture 模組提供的。
注意: %-
和 %+
是與與最近一次成功的正規表示式關聯的共用內部散列的繫結檢視。因此,透過 each
將它們的迭代存取混合在一起可能會產生無法預測的結果。同樣地,如果最近一次成功的匹配發生變更,則結果可能會令人驚訝。
此變數新增於 Perl v5.10.0。別名 %{^CAPTURE}
新增於 5.25.7。
此變數為唯讀,且其值為動態範圍。