2013-04-30 52 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