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

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.

  • Comment on Re^3: I need a "non-trivial" bug for my script!

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

    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;