Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Re: Named Captures

by Corion (Pope)
on Oct 06, 2010 at 11:09 UTC ( #863756=note: print w/replies, xml ) Need Help??

in reply to Named Captures

You don't have a loop around the /g match, so it only matches once and uses the first matching alternative, "a".

The following loops over the string and outputs %+ whenever it matches something:

> perl -wE"while ('abcde'=~m[(?<a>a)|(?<b>b)|(?<c>c)|(?<d>d)]g){say'-- +';say for keys%+}" -- a -- b -- c -- d

I don't think that %+ will ever be filled with keys from more than one part of an alternation, so you'll never find more than one key in your example. To get all keys you'll likely need to introduce an explicit ordering or enumerate the alternatives.

Replies are listed 'Best First'.
Re^2: Named Captures
by BrowserUk (Pope) on Oct 06, 2010 at 11:19 UTC

    So, each iteration of the implicit /g loop will overwrite %+. Ie. they don't accumulate?

    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://863756]
[Corion]: Discipulus: Hahaha ;)
[Discipulus]: marioroy did you know zentara is back to themonastery? he was used to be one of the best parallel programming monks

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (11)
As of 2017-03-23 08:36 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (285 votes). Check out past polls.