If you define the constants in MyUtils.pm and only use them outside you do not need to do anything special. Define them any way you need and include them in the @EXPORT array. Something like

package MyUtils; use base Exporter; our @EXPORT = qw(LVL1 LVL2 LVL3 debug); sub debug { print "$_\n" for @_; } my $count_of_levels = 3; our %debug = ( # fake initialization 1 => 1, 2 => 1, 3 => 0 ); for (1 .. $count_of_levels) { eval "sub LVL$_ () {$debug{$_}};"; } 1;
and
use strict; use MyUtils; print "Starting\n"; debug "blah 1" if LVL1; debug "blah 2" if LVL2; debug "blah 3" if LVL3; print "Ende\n";
The reason you do not need to use a BEGIN block this way is that the code in MyUtils.pm outside any subroutines is evaluated before perl returns to the file containing the use statement and continues parsing it. So the LVLx constants do get defined in time.


In reply to Re^3: removing debugging code at compile time ? by Jenda
in thread removing debugging code at compile time ? 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.