Short question: What\'s mean the
keys %+
in perl?
I saw it in some source code.
The hash %+
has all the matches from named capture groups in regexes in the current scope. It's explained in perlvar under %LAST_PAREN_MATCH
and was added in 5.10.
Similar to @+ , the %+ hash allows access to the named capture buffers, should they exist, in the last successful match in the currently active dynamic scope. [..]
The keys function lists all the keys in the hash.
Whenever you see a groovy-looking variable, look it up in perldoc perlvar.
In this case, %+
is the hash that stores the values corresponding to the named captures of the last regex:
Similar to
@+
, the%+
hash allows access to the named capture buffers, should they exist, in the last successful match in the currently active dynamic scope. For example,$+{foo}
is equivalent to$1
after the following match:'foo' =~ /(?<foo>foo)/;
See perldoc perlretut for more details.
These docs are what you want:
perldoc -f keys
perldoc -v %+