是否可以在 Perl 中获取当前源代码行号?C++ 中的等价物是__LINE__
.
David
问问题
36202 次
4 回答
63
该__LINE__
文字记录在perldata 手册页的特殊文字部分。
print "File: ", __FILE__, " Line: ", __LINE__, "\n";
或者
warn("foo");
于 2008-12-10T09:01:07.287 回答
8
请注意,有一个问题
perl -e'warn("foo")'
foo 在 -e 第 1 行。
如果它以换行符结尾,则不会打印行号
perl -e'warn("foo\n")'
富
这在“perldoc -f die”中有记录,但在“perldoc -f warn”部分对 die 的引用中可能很容易错过......
于 2008-12-11T02:34:26.100 回答
1
这会打印出您所在的行,以及“堆栈”(来自调用程序(脚本/模块/等)的行列表,这些行指向您现在所在的位置)
while(my @where=caller($frame++)) { print "$frame:" . join(",",@where) . "\n"; }
于 2012-02-26T13:26:38.190 回答
1
“使用 Carp”并使用各种例程,您还会得到一个堆栈 - 不确定这种方式是否比 cnd 建议的“调用者”方法更好或更差。我在 C 和 Perl 中使用了 LINE 和 FILE 变量(可能还有其他类似的变量)来显示我在调试时在代码和其他信息中的位置,但在调试环境之外没有看到什么价值。
于 2014-10-17T22:28:48.643 回答