我已经看到 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/