in reply to Re: Clever optimisation: by design or luck?
in thread Clever optimisation: by design or luck?

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.
"Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
In the absence of evidence, opinion is indistinguishable from prejudice. Not understood.