When using constants with debugging, I'm usually using an environment variable to signal the level of debugging info required, with variations on the following code:
If this code is run with -MO=Deparse, you get:BEGIN { my $level = $ENV{'FOO_DEBUG'} || 0; eval "*Foo::DEBUG = sub () {$1}" if $level =~ m#^(\d+)$#s; } #BEGIN if (Foo::DEBUG) { print "We're debugging\n"; }
If you set the environment variable FOO_DEBUG to 1, you get:sub BEGIN { my $level = $ENV{'FOO_DEBUG'} || 0; eval "*Foo::DEBUG = sub () {$1}" if $level =~ /^(\d+)$/s; } '???';
sub BEGIN { my $level = $ENV{'FOO_DEBUG'} || 0; eval "*Foo::DEBUG = sub () {$1}" if $level =~ /^(\d+)$/s; } do { print "We're debugging\n" };
Hope this helps.
Liz
In reply to Re: using constants to trigger debug code
by liz
in thread using constants to trigger debug code
by ManFromNeptune
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |