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

Re^2: I need a "non-trivial" bug for my script!

by Fletch (Chancellor)
on Feb 26, 2009 at 22:13 UTC ( #746686=note: print w/replies, xml ) Need Help??

in reply to Re: I need a "non-trivial" bug for my script!
in thread I need a "non-trivial" bug for my script!

Another good regex-related one is blindly assuming a match succeeded and geting "stale" results from the last one which was successful sitting in $1 and friends.

The cake is a lie.
The cake is a lie.
The cake is a lie.

Replies are listed 'Best First'.
Re^3: I need a "non-trivial" bug for my script!
by Lawliet (Curate) on Feb 27, 2009 at 00:28 UTC

    Hah, I hated that one! Out of curiosity, what is the best method of fixing it? Undefining $1 before the regex (not sure if that is possible), testing to see if the regex is successful, or something else?

    And you didn't even know bears could type.

      Do the match in list context, and don't use $\d+ at all

      if (@kitties = $string =~ /pattern (with) captures/) { paw_at @kitties; }
      Obviously you can use my($cats, $kittens) in place of @kitties there.

      The other option is check that the match succeeded first

      if ($string =~ /pattern (with) captures/) { paw_at $1; }
      but $1 is ugly... unpacking into either an array or bundle of scalars will get you less maintenence-programmer hate.

      @_=qw; ask f00li5h to appear and remain for a moment of pretend better than a lifetime;;s;;@_[map hex,split'',B204316D8C2A4516DE];;y/05/os/&print;

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://746686]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (5)
As of 2018-05-27 10:12 GMT
Find Nodes?
    Voting Booth?