Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Evaluating code in a regex at runtime: (??{...})

by dave_the_m (Parson)
on Jan 28, 2013 at 01:12 UTC ( #1015606=note: print w/ replies, xml ) Need Help??


in reply to Evaluating code in a regex at runtime: (??{...})

When a pattern is compiled, all the captures are allocated fixed indices: so for example when the following pattern is compiled, the indices shown are assigned.

/(....)...(...)...(??{foo()})....(...)/ ^ ^ ^ 1 2 3
In particular, the last capture is index number 3.

Each time the pattern is run, foo() might return a string or qr// which has a different number of captures; and which might recursively also include /(??{...})/ and further nested captures. This would make it nearly impossible to guess how to refer to the final capture in the outer pattern, unless we just always call it $3.

Dave.


Comment on Re: Evaluating code in a regex at runtime: (??{...})
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1015606]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (10)
As of 2014-09-20 13:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (159 votes), past polls