sub complexFunction { my (%args) = @_; ... # deep inside some complex code { # create a new scope my $logger - get_logger((caller(0))[3] . "::complexBit"); ... $logger->debug("enzyme experiencing toxic reation..."); ... } # close scope, leaving that logger behind