`死`时如何告诉行号?

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"

或任何适用的。

【讨论】:

以上是关于`死`时如何告诉行号?的主要内容,如果未能解决你的问题,请参考以下文章

程序执行时如何打印文件路径和行号?

在针对 XML 模式验证 XML 文件时如何获取错误的行号

在 R 中使用 doParallel 时,如何获取引发错误的行号?

在 Android 上调试 javascript 时如何打断点(并查看错误行号)?

Symfony 控制台:发生错误/异常/警告时如何显示行号

异常处理——显示发生错误的行号? [复制]