首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相当于PERL Carp->cluck( $msg )的红宝石

相当于PERL Carp->cluck( $msg )的红宝石
EN

Stack Overflow用户
提问于 2013-11-08 11:46:07
回答 1查看 141关注 0票数 4

Perl有一个名为Carp的模块,它可以用来打印消息(w.o明确地引发异常),它可以打印消息和完整的堆栈跟踪。也就是说。

代码语言:javascript
复制
use Carp qw(cluck) ;
cluck ("foo")

会产生:

代码语言:javascript
复制
foo called from file bar, line 2

有什么想法吗?如何在Ruby中找到类似的东西?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-08 11:54:38

您可以为此使用Kernel#caller_locations (locations)

代码语言:javascript
复制
def cluck(val)
  loc = caller_locations.last
  puts "#{val} called from file #{loc.path}, line #{loc.lineno}"
end

cluck 1
cluck "hello"

输出:

代码语言:javascript
复制
1 called from file line_of_caller.rb, line 6
hello called from file line_of_caller.rb, line 7

这里是线程的一个实例::loc::Location,所以您也可以从它获得更多信息;查看http://www.ruby-doc.org/core-2.0.0/Thread/Backtrace/Location.html

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

https://stackoverflow.com/questions/19858374

复制
相关文章

相似问题

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