首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Carp::carp在Perl中做什么?

Carp::carp在Perl中做什么?
EN

Stack Overflow用户
提问于 2010-04-02 12:23:20
回答 2查看 883关注 0票数 0

谁能给我解释一下Perl子例程和示例carp代码?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-02 12:33:00

请参阅perldoc for Carp

carp是Perl的warn函数的替代方法,它使用堆栈跟踪信息来显示在何处调用了发出警告的函数。这可能比warn告诉您警告发生在何处的行为更有帮助。

举个例子:

此程序:

代码语言:javascript
复制
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);

告诉你:

代码语言:javascript
复制
Can't take square root of a negative number at carpdemo.pl line 4.

但如果我们将warn更改为carp

代码语言:javascript
复制
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);

它告诉你:

代码语言:javascript
复制
Can't take square root of a negative number at carpdemo.pl line 4
        main::square_root(-4) called at carpdemo.pl line 10

这行额外的信息有助于跟踪您可能不正确使用函数或模块的地方。

票数 14
EN

Stack Overflow用户

发布于 2010-04-02 12:25:34

http://perldoc.perl.org/Carp.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2564996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档