2010-04-02 60 views

回答

13

perldoc for Carp

是Perl的warn功能的替代方案,使用堆棧跟蹤信息,以顯示你,你叫發出警告的功能。這可能比warn告訴你警告發生的地方更有幫助。

一個例子:

這個程序:

1: sub square_root { 
2: my $arg = shift; 
3: if ($arg < 0) { 
4: warn "Can't take square root of a negative number"; 
5: } else { 
6: return sqrt($arg); 
7: } 
8: } 
9: print square_root(-4); 

告訴你:

Can't take square root of a negative number at carpdemo.pl line 4. 

但是,如果我們改變warn到:

1: use Carp; 
2: sub square_root { 
3: my $arg = shift; 
4: if ($arg < 0) { 
5: carp "Can't take square root of a negative number"; 
6: } else { 
7: return sqrt($arg); 
8: } 
9: } 
10: print square_root(-4); 

它告訴你:

Can't take square root of a negative number at carpdemo.pl line 4 
     main::square_root(-4) called at carpdemo.pl line 10 

信息的額外線是在跟蹤,你可能會使用的功能或模塊錯誤下來的地方有幫助。

+2

堆棧跟蹤:http://en.wikipedia.org/wiki/Stack_trace - 您目前正在使用的函數列表 – mob 2010-04-02 05:04:10

+0

好的解釋!非常感謝!!! – thillaiselvan 2010-04-02 05:13:24

+1

從http://dictionary.reference.com/browse/carp:**鯉魚**:*發現錯誤或抱怨懊惱或不合理;在批評中嬉戲; cavil:鯉魚在小錯誤。* – Zaid 2010-04-02 10:56:54