特殊变量$ @在Perl中意味着什么?

时间:2009-07-30 17:51:15

标签: perl eval perlvar

我正在尝试理解以下代码:

sub foo {
    ...
    if ( $@ ) {
        ...
        die $@;
    }
}

3 个答案:

答案 0 :(得分:13)

perldoc -f eval

  

如果存在语法错误或运行时   错误,或“死”声明是   执行时,未定义的值是   由“eval”返回,$ @设置为   错误消息。如果没有   错误,$ @保证为空   串。

另见perldoc perlvar

答案 1 :(得分:3)

$@是一个魔术变量,包含最后eval命令的错误消息(如果有)。

答案 2 :(得分:0)

if循环之前应该有eval,以便能够捕获$ @。

在eval()期间,$ @始终设置为失败并在成功时清除。

如果eval()中的whr代码没有编译,则$ @被设置为编译错误。