6

コマンドラインで実行したい小さなPerlプログラムがあります。require他の誰かが書いた別のPerlスクリプト(モジュールではない)が必要です。それは、順番に、require他のいくつかのスクリプトです。(私はこれがどのように機能するかについては何もできません)。

さて、これらのスクリプトの1つにとが含まれているのは本当に迷惑です。私はそれを望んでいません。何かが壊れるたびにコンソールに15行あるのは、本当に神経質になっています。私はもう試したuse CGI;use CGI::Carp qw(fatalsToBrowser)500 Internal Server Error page

require 'otherscript.pl';
no CGI;
no CGI::Carp;

no CGI;
no CGI::Carp;
require 'otherscript.pl';

use docで説明されているように、アンロードしますが、機能しません。

どういうわけかシンボルテーブルを操作したり、他の魔法を使ってそれを取り除くことはできますか?

4

3 に答える 3

3

$CGI::Carp::TO_BROWSER変数をに設定すると0、HTMLバージョンのダイメッセージの印刷を抑制することができます。

于 2012-06-28T13:04:40.900 に答える
3

unimportCGI :: Carpパッケージにはルーチンがないためno、効果はありません。importルーチンの関連部分を手動で元に戻します。

字句スコープ(警告を参照):

local $main::SIG{__DIE__} = \&CGI::Carp::realdie;

グローバルスコープ:

CGI::Carp::set_die_handler(\&CGI::Carp::realdie);
于 2012-06-28T11:35:41.693 に答える
2

を使用するコードはどこfatalsToBrowserから来ていますか?非常fatalsToBrowserに便利な開発ツールですが、開発でのみ使用する必要があります。fatalsToBrowser実稼働環境では、サーバーをクラックしようとしている人に情報が多すぎる可能性があるため、セキュリティリスクであると主張できます。

ですから、他の人が言っているトリックを使って、それをオフにしてください。fatalsToBrowserただし、問題のあるコードが本番環境で使用されないように変更されていることを確認するために、できる限りのことを行う必要があります。

于 2012-06-28T13:49:09.150 に答える