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