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

Re: I usually debug via...

by Xiong (Hermit)
on Aug 15, 2010 at 10:43 UTC ( #855137=note: print w/replies, xml ) Need Help??

in reply to I usually debug via...

My habit in any language, going back many years, has been to debug using the equivalent of print() and so I did at first in Perl. I appreciate the convenience of say(); it allows me to concentrate on properly quoting what I wish to say, without hanging , qq{\n} to the end of the statement.

Print-debug statements must be disabled in production. One may comment them out individually but some can be missed. For a time, I felt more secure writing, e.g.:

say q{$myvar: }, $myvar if $::Debug;

But that's too much work and leads to other difficulties.

When I learned of it, I enthusastically adopted Smart::Comments, which permits:

### $myvar

... with the same effect as the say() code above; except that disabling is simpler and can also be more flexible. Complex structures are dumped (internally using Data::Dumper) in exactly the same way. (Please see In Defense of Smart::Comments.) The big fat shorcoming is that all smart output goes to STDERR.

So, I forked S::C into Devel::Comments, which permits output to be sent to one's choice of output streams or files. Other features are planned. Needless to say, in future, this will be my first choice.

We don't need the conch anymore. We know who ought to say things.... It's time some people knew they've got to keep quiet and leave deciding things to the rest of us.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://855137]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (11)
As of 2017-05-25 14:42 GMT
Find Nodes?
    Voting Booth?