我已经看到在eval块的末尾出现1,用于perl中的异常处理.为什么需要这个?如果eval块返回false会发生什么?
即使我们不直接使用$ @但是CPAN的一些库要进行异常处理,这是否需要?
该错误值由返回eval.
这不是必需的.
my $foo = eval { foo() };
Run Code Online (Sandbox Code Playgroud)
如果你$foo在异常时没有成功,那就完全没问题.
你看到的是什么
if (!eval { foo(); 1 }) {
...
}
Run Code Online (Sandbox Code Playgroud)
代码返回true以让if知道eval成功.eval将在异常时返回false.