2013-04-30 26 views
5

我有一个Perl脚本,我不明白。

for $i(@myarr) 
{ 
    #some stuff 
    eval { 
     #some stuff 
    }; 
    if([email protected]) 
    { 
     print "*** [email protected] ****"; 
    } 
} 
  1. 是什么EVAL呢?这是一个标准的Perl命令还是只是一些子?
  2. 变量$ @是什么?它目前正在打印一个字符串,但我不知道该字符串来自哪里。
+2

看看http://perldoc.perl.org/functions/eval.html – 2013-04-30 06:50:24

回答

7

为了增加Suic的回答,请参阅English模块,可让您使用更描述性的,而不是$EVAL_ERROR[email protected]Try::TinyTryCatch模块避免常见的陷阱,使用eval异常处理有关。另外,下一次您想知道Perl函数时,perldoc -f是您的朋友(如perldoc -f eval)。

+0

嗨zoul感谢您的额外信息! 关于perldoc -f,我是否应该在我的解释器上运行它? 我正在使用Hamilton C Shell,它可以很容易地从perl -v中检测到Perl的版本,但它不能执行你的命令。 – 2013-04-30 07:17:50

+0

我不知道Windows上的Perl,对不起。你总是可以只为谷歌“perldoc富”,工程大致相同。 – zoul 2013-04-30 07:30:15

6

[email protected]来自最后eval,do-FILE或require命令的Perl语法错误或例程错误消息。如果设置,则编译失败,或者在eval的代码中执行die功能。请仔细阅读本文档http://perldoc.perl.org/perlvar.html

+0

感谢您的答案。 现在明白了eval的作用。 – 2013-04-30 07:15:29