I had been using Carp::Cluck instead of print as a way to debug stuff. The traceback information can be very useful. However, it was a pain to have to either go back and remove everything or comment it out or add ...if $::DEBUG; after every line.

Then it struck me that I could just add the conditional to Cluck in Carp module, but that could interfere with existing code so I decided to add a new function.

I chose the name Clue as it's purpose is to give me a clue when debugging and follows the apparent convention of the module of starting with C.

It only requires 2 changes. One modification and one additional line. I've attempted to inticate these in the style of diff, but don't be surprised if I didn't get it right.

To use:

use Carp 'clue'; $::DEBUG = 1; # to enable Clueing. ... clue 'scalar';

I add the following line to my programs:

use vars qw/$DEBUG/;

so that I can just add -s -DEBUG to the program invokation to turn it on. Simple but useful.

73:-+ @EXPORT_OK = qw(cluck verbose clue); 123 + sub clue { warn longmess @_ if $::DEBUG; }