3

简短的问题:这是什么意思

keys %+

在 perl 中?

我在一些源代码中看到了它。

4

3 回答 3

5

哈希%+具有来自当前范围内正则表达式中命名捕获组的所有匹配项。它在perlvar中进行了解释,%LAST_PAREN_MATCH并在 5.10 中添加。

与 @+ 类似, %+ 哈希允许访问命名的捕获缓冲区,如果它们存在,则在当前活动动态范围的最后一次成功匹配中。[..]

keys函数列出散列中的所有键。

于 2013-06-03T18:38:23.610 回答
5

每当您看到一个看起来很时髦的变量时,请在perldoc perlvar.

在这种情况下,%+是存储与最后一个正则表达式的命名捕获相对应的值的哈希:

与 类似@+%+哈希允许访问命名的捕获缓冲区,如果它们存在,则在当前活动动态范围内的最后一次成功匹配中。例如,$+{foo}等价于 $1以下匹配后:

'foo' =~ /(?<foo>foo)/;

有关perldoc perlretut更多详细信息,请参阅。

于 2013-06-03T18:41:30.130 回答
4

这些文档是您想要的:

perldoc -f keys

perldoc -v %+

于 2013-06-03T18:39:12.607 回答