题
我正在尝试理解以下代码:
sub foo {
...
if ( $@ ) {
...
die $@;
}
}
解决方案
如果存在语法错误或运行时 错误,或“死亡”声明是 执行时,未定义的值是 由“eval”返回,$ @设置为 错误消息。如果没有 错误,$ @保证为空 串。
另见 perldoc perlvar
。
其他提示
$ @
是一个魔术变量,包含最后一个 eval
命令的错误消息,如果有的话。
if循环之前应该有eval,以便能够捕获$ @。
在eval()期间,$ @始终设置为失败并在成功时清除。
如果eval()中的whr代码没有编译,则$ @被设置为编译错误。
不隶属于 StackOverflow