-2

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

4

1 回答 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 回答