Tie::Hash::NamedCapture - 命名正则表达式捕获缓冲区
tie my %hash, "Tie::Hash::NamedCapture";
# %hash now behaves like %+
tie my %hash, "Tie::Hash::NamedCapture", all => 1;
# %hash now access buffers from regexp in $qr like %-
此模块用于实现特殊哈希 %+
和 %-
,但也可以用于绑定您选择的其他变量。
当提供 all
参数时,绑定的哈希元素将是数组引用,列出每个捕获缓冲区的内容,其名称与关联的哈希键相同。如果这些缓冲区中没有一个参与匹配,则该数组引用的内容将与具有该名称的捕获缓冲区的数量一样多的 undef
值。换句话说,绑定的哈希将表现得像 %-
。
当省略或为假 all
参数时,绑定的哈希元素将是具有关联哈希键名称的最左侧定义缓冲区的内容。换句话说,绑定的哈希将表现得像 %+
。
%-
类哈希的键对应于在正则表达式中找到的所有缓冲区名称;%+
类哈希的键仅列出已捕获(因此与定义值相关联)的缓冲区的名称。
此实现已移至核心可执行文件,但您仍然可以加载此模块以实现向后兼容性。
perlreapi,re,"perlmodlib" 中的 "Pragmatic Modules","%+" in perlvar,"%-" in perlvar。