我有一个Perl脚本,我不明白。
for $i(@myarr)
{
#some stuff
eval {
#some stuff
};
if([email protected])
{
print "*** [email protected] ****";
}
}
- 是什么EVAL呢?这是一个标准的Perl命令还是只是一些子?
- 变量$ @是什么?它目前正在打印一个字符串,但我不知道该字符串来自哪里。
我有一个Perl脚本,我不明白。
for $i(@myarr)
{
#some stuff
eval {
#some stuff
};
if([email protected])
{
print "*** [email protected] ****";
}
}
为了增加Suic的回答,请参阅English模块,可让您使用更描述性的,而不是$EVAL_ERROR
和[email protected]
的Try::Tiny或TryCatch模块避免常见的陷阱,使用eval
异常处理有关。另外,下一次您想知道Perl函数时,perldoc -f
是您的朋友(如perldoc -f eval
)。
嗨zoul感谢您的额外信息! 关于perldoc -f,我是否应该在我的解释器上运行它? 我正在使用Hamilton C Shell,它可以很容易地从perl -v中检测到Perl的版本,但它不能执行你的命令。 – 2013-04-30 07:17:50
我不知道Windows上的Perl,对不起。你总是可以只为谷歌“perldoc富”,工程大致相同。 – zoul 2013-04-30 07:30:15
[email protected]
来自最后eval,do-FILE或require命令的Perl语法错误或例程错误消息。如果设置,则编译失败,或者在eval的代码中执行die功能。请仔细阅读本文档http://perldoc.perl.org/perlvar.html
感谢您的答案。 现在明白了eval的作用。 – 2013-04-30 07:15:29
看看http://perldoc.perl.org/functions/eval.html – 2013-04-30 06:50:24