Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Re: look-behind regex

by Anonymous Monk
on Jul 25, 2002 at 02:21 UTC ( #185097=note: print w/replies, xml ) Need Help??


in reply to Re: look-behind regex
in thread look-behind regex

Don't be afraid to use the e modifier: s/(toto)|foo/defined $1 ? $1 : 'bar'/e Cheers,
-Anomo

Replies are listed 'Best First'.
Re: Re: Re: look-behind regex
by I0 (Priest) on Jul 25, 2002 at 14:51 UTC
    How about s/(toto)|foo/$1||'bar'/e
      TMTOWTDI...

      But the reason I used defined() was that I wanted to give a general solution. Someone might copy the code and change toto to something else that matches something that is false without reflecting on how it works. Or you might change it yourself later. Then you perhaps abstract the pattern, and suddenly you have a hard-to-trace bug. I always try to code so that I don't bite myself later on when I patch my code.

      Cheers,
      -Anomo
        In this case, it's easy enough to ensure that $1 is not false. Even if zejames had wanted 'foo' not preceeded by '0' you could substitute  s/(0.*foo)|foo/($1,'bar')[!$1]/es

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (2)
As of 2021-01-26 05:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?