in reply to Is there a more elegant existing solution than @CARP_NOT

Assuming your modules all use one another and will be loaded at compile time, something like:
INIT { @CARP_NOT = map /::$/ && "Foo::Bar::$_", keys %Foo::Bar:: }
or just have all the @CARP_NOT's aliased to one main one at at the top of each module, push the modules name onto it

or have a coderef in @INC that detects your modules and adds to @CARP_NOT