ソースファイルを復号化して実行するローダープログラムを作成しています。各ソースファイルには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 に答える