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

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.


Comment on Re^2: I need a "non-trivial" bug for my script!
Download Code
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?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (6)
As of 2014-08-21 11:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (134 votes), past polls