ソースファイルを復号化して実行するローダープログラムを作成しています。各ソースファイルにはCurses::UI、ユーザーがユーザーインターフェイスを終了するために使用できるサブルーチンを含むベースのプログラムが含まれています。exitただし、ユーザーが終了した後にクリーンアップを実行する必要がありますが、これらをキャッチする方法や呼び出しを行う方法がわからないdieため、必要なファイルの後に続くクリーンアップコードが実行されます。
1 に答える
3
次のように、コードをブロックでdieラップすることにより、呼び出しをキャッチできます。eval
eval {
require Module::that_dies;
};
if ($@) {
# handle the exception here
}
しかし、これは役に立ちませんexit 。exitブロックの後にクリーンアップするコードを実行することもできますがEND{}、これは、必要なモジュールが終了した場合だけでなく、終了後に実行されることに注意してください。
END {
# code that runs after exit
}
require Module::that_exits;
END ブロックの詳細については、perldoc perlmod
于 2011-10-10T08:47:58.053 に答える