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

发布于 2024-12-08 21:15:06 字数 185 浏览 5 评论 0原文

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

I am writing a loader program to decrypt source files and run them. Each source file holds a Curses::UI based program which contain subroutines that the user may use to exit the user interface. I need to run some clean up after the user exits though and am not sure how to catch these exit or die calls so the clean-up code that comes after the required files will execute, any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你的背包 2024-12-15 21:15:06

您可以通过将代码包装在 eval 块中来捕获 die 调用,如下所示:

eval {
    require Module::that_dies;
};
if ($@) {
    # handle the exception here
}

但这对 exit 没有帮助。我相信,您可以在 END{} 块中的 exit 之后运行清理代码,但请注意,这将在任何退出后运行,而不仅仅是您需要的情况模块退出。

END { 
    # code that runs after exit
}

require Module::that_exits;

perldoc perlmod 中了解有关 END 块的更多信息

You can catch die calls by wrapping the code in an eval block, as in:

eval {
    require Module::that_dies;
};
if ($@) {
    # handle the exception here
}

This won't help for exit though. You could have code that runs to cleanup after exit in an END{} block, I believe, but note that this will be run after any exit, not just if your required module exits.

END { 
    # code that runs after exit
}

require Module::that_exits;

Read more about END blocks in perldoc perlmod

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文