Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: Clever optimisation: by design or luck?

by shawnhcorey (Friar)
on Jun 25, 2016 at 12:17 UTC ( [id://1166552]=note: print w/replies, xml ) Need Help??


in reply to Clever optimisation: by design or luck?

I used the same trick of conditional inclusion of debug code. A Look at Conditional Compiling of Diagnostics

  • Comment on Re: Clever optimisation: by design or luck?

Replies are listed 'Best First'.
Re^2: Clever optimisation: by design or luck?
by BrowserUk (Patriarch) on Jun 25, 2016 at 13:21 UTC

    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.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1166552]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (3)
As of 2024-04-20 15:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found