0
任何人都可以請示例Perl代碼解釋我有關子例程嗎?Carp :: carp在Perl中做什麼?
任何人都可以請示例Perl代碼解釋我有關子例程嗎?Carp :: carp在Perl中做什麼?
是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
信息的額外線是在跟蹤,你可能會使用的功能或模塊錯誤下來的地方有幫助。
堆棧跟蹤:http://en.wikipedia.org/wiki/Stack_trace - 您目前正在使用的函數列表 – mob 2010-04-02 05:04:10
好的解釋!非常感謝!!! – thillaiselvan 2010-04-02 05:13:24
從http://dictionary.reference.com/browse/carp:**鯉魚**:*發現錯誤或抱怨懊惱或不合理;在批評中嬉戲; cavil:鯉魚在小錯誤。* – Zaid 2010-04-02 10:56:54