use strict; use warnings; use Data::Dump qw/pp dd/; TEST::first(); # <- line 6 #push @main::CARP_NOT, qw(TEST); # uncomment to see dynamic behaviour #TEST::first(); package TEST; use Carp; sub first { second(); } sub second { carp "some warning"; }