1. which I can control from outside
  2. Is removed from the code if disabled i.e. in production I don't want this to take cpu cycles (pruned at compile time)
  3. is short to write i.e. as less keystrokes as possible.

Perhaps the Log::Log4perl module could be useful? It satisfies the first and third of your requirements, but not the second entirely and the second in the sense that you can leave debug statements in production code and turn it on/off as you please. There is a small performance penalty, however, since at least one if test is performed for each statement. There is a performance discussion in the FAQ.

Update: Clarified the second requirement.

--
Andreas

In reply to Re: Cheaper - Debug,Log,Errors via Slicing&dicing by andreas1234567
in thread Cheaper - Debug,Log,Errors via Slicing&dicing by rootcho

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.