在perl 5中,我将使用任何Carp函数。在perl 6中,搜索没有帮助,CodeIgniter has a built-in solution将打印所有堆栈,而不仅仅是我想要的堆栈。我只能使用抛出异常,捕获它并打印它的旧hack:
try {
X::AdHoc.new(payload => 'Stack').throw;
CATCH { when X::AdHoc { .say; } }
}
或者,有点懒惰:
{
die;
CATCH { default { .say } }
}
这样做的正确方法是什么?
答案 0 :(得分:8)
我实际上在写这个问题的时候找到了答案,并决定在这里发布,因为它没有出现在我之前的任何搜索中。 Perl 6的trace pragma类将获得堆栈跟踪并将其转换为字符串:
say "Stack: " ~ Backtrace.new;
(使用Backtrace.new.full
查看一些通常隐藏的其他低级别堆栈帧。)