Indeed. Also, I think it reads particularly nicely using
...
DEBUG and print 'debugging';
...
Which achieves the same optimisation in a single line: C:\test>perl -le"use constant DEBUG=>0; print 'hi'; DEBUG and print 'd
+ebugging'; print 'bye'"
hi
bye
C:\test>perl -MO=Deparse -le"use constant DEBUG=>0; print 'hi'; DEBUG
+and print 'debugging'; print 'bye'"
BEGIN { $/ = "\n"; $\ = "\n"; }
use constant ('DEBUG', 0);
print 'hi';
'???';
print 'bye';
-e syntax OK
And you can take it a step further if you add -s to your shebang line as I habitually do, and avoid even having to edit the script to enable the debugging (note the order of the pragmas!): #! perl -slw
use constant DEBUG => $DEBUG;
use strict;
print 'hi';
DEBUG and print 'debugging';
print 'bye';
__END__
C:\test>t-debug.pl
hi
bye
C:\test>t-debug.pl -DEBUG
hi
debugging
bye
C:\test>perl -MO=Deparse t-debug.pl
BEGIN { $^W = 1; }
BEGIN { $/ = "\n"; $\ = "\n"; }
use constant ('DEBUG', $DEBUG);
use strict 'refs';
print 'hi';
'???';
print 'bye';
C:\test>perl -MO=Deparse t-debug.pl -DEBUG
BEGIN { $^W = 1; }
BEGIN { $/ = "\n"; $\ = "\n"; }
use constant ('DEBUG', $DEBUG);
use strict 'refs';
print 'hi';
print 'debugging';
print 'bye';
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
In the absence of evidence, opinion is indistinguishable from prejudice. Not understood.
|