in reply to Conditional Interpretation?

In addition to the other suggestions that have already been given to you, it is worth mentioning that you would better provide a per-module conditional debugging facility. You may want to activate it like

use My::Module DEBUG => 1;

or more easily from the implementation POV:

use My::Module; # ... $My::Module::DEBUG = 1;

If you're concerned that for every debugging info there will be a condition to be checked, for the most critical cases you may write two versions of a sub: one for regular use and one for debugging and call them dereferencing a coderef to the appropriate one assigned to a variable, or perhaps, if you really need to, you may mangle the symbol table. But please do that only if you know what you're doing