People are suggesting solutions. Let me identify the problem:
BEGIN { # These will only be used in the # debugging version. if ($DEBUG) { use strict; use warnings; use Data::Dumper; use CGI::Carp; } # These are needed by the program # regardless. use CGI::Minimal; use HTML::Template; # ... others, etc. }

Like BEGIN blocks, use statements execute as soon as they are compiled. Your use CGI::Carp; executes as soon as it is compiled, with no regard to whether that code is reached at run-time. That means the if ($DEBUG) has no bearing on whether use statements inside the if are executed or not.

Secondly, strict and warnings are pragmas. They only affect the lexical block in which they are located (and nested blocks). use strict; would only work for the body of the if.


In reply to Re: Controlling "use" statements by ikegami
in thread Controlling "use" statements by nodice

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.