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; #### 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";