perl - perl 中的异常处理

标签 perl perl-module

我已经看到 1 出现在 eval 块的末尾,用于 perl 中的异常处理。为什么需要这样做?如果 eval 块返回 false 会发生什么?

即使我们不直接使用 $@ 而是使用来自 CPAN 的一些库来进行异常处理,这是否需要?

最佳答案

如果 eval 块返回 false 会发生什么?

该假值由 eval 返回.

为什么需要这样做?

这不是必需的。

my $foo = eval { foo() };

如果您对 $foo 没问题,那就太好了在异常情况下是 undef。

你所看到的是
if (!eval { foo(); 1 }) {
   ...
}

代码返回 true 以让 if知乎 eval成功了。 eval将在异常时返回 false。

关于perl - perl 中的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15050354/

相关文章:

perl - List::MoreUtils 网格或 'zip' 函数

html - 通过 html 页面中的正则表达式获取链接的 css 文件

regex - "smart"(宽容)日期解析器?

perl - perl 常量在哪里被它们的值替换?

linux - linux 支持 win32::OLE 吗?

ruby - 相当于 Ruby 中的 PERL Carp->cluck( $msg )

perl - 如何减去两个 HH :MM:SS times from each other in Perl?

string - Perl 无法截断字符串

perl - Perl 程序如何知道在哪里可以找到包含它使用的 Perl 模块的文件?

perl - 为什么一个模块可以自行编译,但在其他地方使用时会失败?