package Foo;
use constant DEBUG => 2;
warn "something happened" if DEBUG;
warn "something interesting happened" if DEBUG > 1;
####
package Foo;
use constant DEBUG => do {my $p=__PACKAGE__; ",$ENV{DEBUG}," =~ m/,($p|all)(=(.*?))?,/s && ($2 ? $3 : 1) };
warn "something happened" if DEBUG;
warn "something interesting happened" if DEBUG > 1;
####
# set DEBUG to 1 in package main
% setenv DEBUG main
% perl foo.pl
# set DEBUG to 5 in package main
% setenv DEBUG main=5
% perl foo.pl
# set DEBUG to 2 in package main and 3 in package Foo
% setenv DEBUG Foo=3,main=2
% perl foo.pl
# set DEBUG to 99 in all packages
% setenv DEBUG all=99
% perl foo.pl