Исходя из ваших комментариев, я понимаю, что вы хотели бы сделать carp
фатальным предупреждением.
Если допустимо превратить все carp
предупреждения в вашем целевом пакете в фатальные ошибки, вы можете monkey-patch carp
.
Ковровое покрытие:
package Foo;
use Carp;
sub annoying_sub {
carp "Whine whine whine";
}
Основная программа:
use Foo;
*Foo::carp = \&Foo::croak;
Foo::annoying_sub();
Если вы хотите ограничить патч обезьяны динамической областью действия, вы можете использовать local
:
use Foo;
Foo::annoying_sub(); # non-fatal
{ local *Foo::carp = \&Foo::croak;
Foo::annoying_sub(); # Fatal
}