$DEBUG_LEVEL = 1; $DEBUG = $DEBUG_LEVEL ? sub {croak "$! $@";} : sub { 0; }; sub foo { do_something; if ($argh) {return &$DEBUG} return 1; }