我正在编写一个加载程序来解密源文件并运行它们。每个源文件都包含一个基于Curses::UI
的程序,该程序包含用户可用于退出用户界面的子例程。我需要在用户退出后运行一些清理,但不确定如何捕获这些exit
或die
调用,以便在执行所需文件后执行的清理代码,任何想法?
答案 0 :(得分: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;
详细了解perldoc perlmod