http://www.perlmonks.org?node_id=1101687


in reply to Re^4: Turning on regexp debugging at runtime
in thread Turning on regexp debugging at runtime

Thanks. I misunderstood DEBUG_REGEX.

Unfortunately, the actual situation is very complicated. There are literally hundreds of regexps, and I'd like to be able to debug any one of them at any time. Also, they are called multiple times, so I might only be interested in the 4th time that a regexp is called.

Unfortunately, the "use regexp" pragma is applied when the regexp is created... I want something to turn debugging on when a regexp is matched against.

It's really not that big of a deal... I can workaround it by simply ignoring a lot of unwanted output. I was just hoping for something a little cleaner during debugging time.

  • Comment on Re^5: Turning on regexp debugging at runtime

Replies are listed 'Best First'.
Re^6: Turning on regexp debugging at runtime
by FloydATC (Deacon) on Sep 24, 2014 at 11:32 UTC

    This technique was completely new to me as well, but judging from the example code it looks like you can test for pretty much any condition you like if an environment variable doesn't suit your needs.

    -- FloydATC

    Time flies when you don't know what you're doing

Re^6: Turning on regexp debugging at runtime
by RonW (Vicar) on Sep 24, 2014 at 16:35 UTC

    Try this:

    { use re debug; my $re = qr/myregex/; } ... if ($item =~ /$re/) { ... }

    Update: SBECK had said:

    Unfortunately, the "use regexp" pragma is applied when the regexp is created... I want something to turn debugging on when a regexp is matched against.

    so I tried to make a helpful suggestion.

    Sorry it was not helpful

      Try it yourself. $re will be scoped only inside the block, so can't be used outside the curly brackets in the if.
      لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ