Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

RE: Easy, elemental, but cool debug trick.

by Bourgeois_Rage (Beadle)
on May 25, 2000 at 23:00 UTC ( [id://14844]=note: print w/replies, xml ) Need Help??


in reply to Easy, elemental, but cool debug trick.

Nice, I have similar techniques, but this one makes it real easy to clean up. I'll be sure to use this one. I think that if you write a short Perl program using REGEXP, you could scan through the document and remove all the lines with $DEBUG in it. That would seem to be the quickest way to clean up the file to me.
  • Comment on RE: Easy, elemental, but cool debug trick.

Replies are listed 'Best First'.
RE: RE: Easy, elemental, but cool debug trick.
by mikfire (Deacon) on May 26, 2000 at 00:09 UTC
    Neat idea, but why remove them? I amlost always need to turn debugging back on sooner or later. How about something like this:
    perl -i.bak -e 's/^(.+\$DEBUG.+)$/#$1/' foo.pl
    to turn DEBUG off and then
    perl -i.bak -e 's/^#(.+\$DEBUG.+)$/$1/' foo.pl
    to turn it back on.

    At which point, do we even need to define a variable? As a convention, any debug code would simply need #DEBUG hanging off the end and simply change the \$DEBUG part of the regex to look for #DEBUG.

    Is it just me, or is there something very weird about using perl to preprocess perl?

    This waste of time has been gratefully brought to you by
    mikfire

      This is very neat. Going one step further, to allow debug blocks:
      perl -pi.bak -e 's/^(.*)$/#$1/ if /\bDEBUG\b/../\bENDDEBUG\b/' foo.pl
      to remove the block, and
      perl -pi.bak -e 's/^#(.*)$/$1/ if /\bDEBUG\b/../\bENDDEBUG\b/' foo.pl
      To reenable it. Then you can do something like this:
      ... code # DEBUG debug code # ENDDEBUG ... more code
      And yes, there is something very weird about using Perl to pre-process Perl...

      --ZZamboni

        For the final interation, leave the DEBUG blocks always commented out. When you need to debug, simply try this:
        perl -e 's/^#(.*)$/$1/ if /\bDEBUG\b/../\bENDDEBUG\b/' foo.pl | perl
        and eliminate the intermediate file. Actually, more likely to reduce the odds I will ship code with the debug blocks still enabled :)

        mikfire

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (3)
As of 2025-01-22 17:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Which URL do you most often use to access this site?












    Results (63 votes). Check out past polls.