代码之家  ›  专栏  ›  技术社区  ›  David Sykes

如何用Perl打印源行号?

  •  30
  • David Sykes  · 技术社区  · 16 年前

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

    5 回复  |  直到 10 年前
        1
  •  53
  •   Eugene Yokota    16 年前
    print "File: ", __FILE__, " Line: ", __LINE__, "\n";
    

    warn("foo");
    
        2
  •  10
  •   converter42    16 年前

    行文字记录在 Special Literals 剖面图 perldata man page .

        3
  •  7
  •   bigiain    16 年前

    注意这里有一个

    perl-e'warn(“foo”)'

    foo at-e第1行。

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

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

    这在“perldoc-f die”中有记录,但在“perldoc-f warn”一节中很容易忽略对die的引用…

        4
  •  1
  •   sth    13 年前

    这将打印出您所在的行以及“堆栈”(指向您所在位置的调用程序(脚本/模块/etc)的行列表)。

    while(my @where=caller($frame++)) { print "$frame:" . join(",",@where) . "\n"; }
    
        5
  •  1
  •   user4155330    10 年前

    “使用鲤鱼”和玩各种各样的程序,你也会得到一个堆栈-不确定这种方法是否比CND建议的“调用者”方法更好或更差。我使用了C和Perl中的行和文件变量(可能还有其他类似的变量)来显示在调试时代码和其他信息的位置,但是在调试环境之外看到的值很少。