如何在Perl中打印源代码行?

时间:2008-12-10 08:55:30

标签: perl line-numbers

是否可以在Perl中获取当前的源代码行? C ++中的等价物是__LINE__

5 个答案:

答案 0 :(得分:54)

print "File: ", __FILE__, " Line: ", __LINE__, "\n";

warn("foo");

答案 1 :(得分:10)

{_ 3}}的Special Literals部分记录了__LINE__文字。

答案 2 :(得分:7)

注意有一个问题

perl -e'warn(“foo”)'

foo at -e line 1。

如果以换行符结尾,则 不会打印行号

perl -e'warn(“foo \ n”)'

FOO

这在“perldoc -f die”中有记载,但在“perldoc -f warn”部分对die的引用可能很容易错过......

答案 3 :(得分:1)

这打印出你所在的行,以及" stack" (来自调用程序(脚本/模块/等)的行列表,指向您现在所在的位置)

while(my @where=caller($frame++)) { print "$frame:" . join(",",@where) . "\n"; }

答案 4 :(得分:1)

"使用Carp"并且玩各种例程并且你也得到一个堆栈 - 不确定这种方式是否比"来电者更好或更差? cnd提出的方法。我在C和Perl中使用了LINE和FILE变量(可能还有其他类似的变量)来显示我在调试时获得的代码和其他信息,但在调试环境之外几乎看不到它。