Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: Regexp problem

by agaved (Novice)
on Aug 28, 2012 at 20:15 UTC ( #990323=note: print w/ replies, xml ) Need Help??


in reply to Regexp problem

Thanks for the quick answers

I was watching this on the debugger and I think I misinterpreted it.

So now my question is: why in the debugger I get

x "24-06" =~ /\d{2}-\d{2}/   as 1,

but x "24-06" =~ /\d{2}-\d{2}(p)*/   as undef?


Comment on Re: Regexp problem
Select or Download Code
Re^2: Regexp problem
by linuxer (Deacon) on Aug 28, 2012 at 20:35 UTC

    As far as I understand the debugger, both expressions are evaluated in list context.

    The first expression simply returns 1 for success and I assume 0 an empty list for failure; so it's a single boolean result in list context.

    The second expression has capturing parantheses, which (in list context) produces a list of captured results. As your (p)* could not be matched, there is no captured value for (p), so it returns a list with one element: undef.

    That's my attempt to explain it. I am sure there are others who can explain it more detailed and accurately and even show some insight into the internals ...

    DB<4> x "24-06" =~ /\d+-\d+/ 0 1 DB<5> x "24-06" =~ /\d+-\d+failure/ empty array

    edit:

    • fixed assumption upon failed regex match, added code example, some rephrasing

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (15)
As of 2015-07-03 12:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (51 votes), past polls