Perl更好的退出所需文件的方法

时间:2011-10-10 08:36:26

标签: perl exit require goto die

我正在编写一个加载程序来解密源文件并运行它们。每个源文件都包含一个基于Curses::UI的程序,该程序包含用户可用于退出用户界面的子例程。我需要在用户退出后运行一些清理,但不确定如何捕获这些exitdie调用,以便在执行所需文件后执行的清理代码,任何想法?

1 个答案:

答案 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

中的END块