我正在尝试理解以下代码:
sub foo {
...
if ( $@ ) {
...
die $@;
}
}
如果出现语法错误或运行时错误,或者执行了“die”语句,则“eval”返回未定义的值,并将 $@ 设置为错误消息。如果没有错误,则 $@ 保证为空字符串。
另请参阅perldoc perlvar
。
$@
是一个魔术变量,包含最后一个eval
命令的错误消息(如果有)。
if 循环应该在 eval 之前,以便它能够捕获 $@。
在 eval() 期间,$@ 始终设置为失败并清除成功。
如果 eval() 中的 whr 代码未编译,则 $@ 设置为编译错误。