在Perl中,如何禁用在必需脚本中加载的CGI :: Carp?

sim*_*que 6 perl cgi

我有一个小的Perl程序,我想在命令行上运行.我需要require另一个其他人编写的Perl脚本(不是模块).反过来,这require是一些其他脚本.(我无法对这种方式做任何事情).

现在,这些脚本中的一个已经存在并且非常令人讨厌.我不要那个.每次出现故障时,我的控制台上都有15行,这让我很紧张.我试过了use CGI;use CGI::Carp qw(fatalsToBrowser)500 Internal Server Error page

require 'otherscript.pl';
no CGI;
no CGI::Carp;
Run Code Online (Sandbox Code Playgroud)

no CGI;
no CGI::Carp;
require 'otherscript.pl';
Run Code Online (Sandbox Code Playgroud)

卸载它,就像使用doc描述的那样,但它不起作用.

我可以以某种方式操纵符号表或做一些其他魔法来摆脱它吗?

dax*_*xim 3

unimportCGI::Carp 包中没有例程,因此no没有效果。手动撤消例程的相关部分import

词汇范围(参见警告):

local $main::SIG{__DIE__} = \&CGI::Carp::realdie;
Run Code Online (Sandbox Code Playgroud)

全球范围:

CGI::Carp::set_die_handler(\&CGI::Carp::realdie);
Run Code Online (Sandbox Code Playgroud)