`死`时如何告诉行号?
Posted
技术标签:
【中文标题】`死`时如何告诉行号?【英文标题】:How to tell the line number when `die`? 【发布时间】:2014-05-29 17:18:03 【问题描述】:我想这样写:
die "Error in file $0 line number $line_number_of_this_cmd_in_file \n";
在我的 perl 脚本文件中。
有什么帮助吗? 非常感谢!
(perl 5)
【问题讨论】:
查看Carp 的croak
。如果您使用croak
而不是die
,则在使用perl -MCarp=verbose script.pl
运行时可以获得完整的堆栈跟踪。
die
已经报告了行号,要不要改行号?
【参考方案1】:
如果你不把\n放在你传递的字符串的末尾就死了,那么perl会自动加上行号。
否则,标记 __LINE__
将为您提供脚本中的当前行号(__FILE__
提供当前文件名)。
除非您指的是您刚刚读取的文件的当前行号 - 可以在 $ 中找到。
【讨论】:
【参考方案2】:这很简单:将\n
放在行尾,die
将附加您编写的任何消息以及脚本名称和行号。
例如:
die "Encountered error 15 ";
将导致它打印:
"Encountered error 15 at script.pl line 42\n"
或任何适用的。
【讨论】:
以上是关于`死`时如何告诉行号?的主要内容,如果未能解决你的问题,请参考以下文章
在 R 中使用 doParallel 时,如何获取引发错误的行号?