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

sub foo {
    ...
    if ( $@ ) {
        ...
        die $@;
    }
}
有帮助吗?

解决方案

perldoc -f eval

  

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

另见 perldoc perlvar

其他提示

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top