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

Dav*_*kes 32 perl line-numbers

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

Eug*_*ota 56

print "File: ", __FILE__, " Line: ", __LINE__, "\n";
Run Code Online (Sandbox Code Playgroud)

要么

warn("foo");
Run Code Online (Sandbox Code Playgroud)

  • 警告将在STDERR上打印. (5认同)

con*_*r42 11

__LINE__文字记录在perldata手册页特殊文字部分中.


big*_*ain 8

注意有一个问题

perl -e'warn("foo")'

foo at -e line 1.

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

perl -e'warn("foo \n")'

FOO

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