加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在Perl中找到打印声明的源位置?

发布时间:2020-12-15 22:02:32 所属栏目:大数据 来源:网络整理
导读:如何在Perl中找到打印声明的源位置? #!/usr/bin/perlfoo();bar();sub foo { print "foon";}sub bar { print "barn";} 输出为: perl test.pl foobar 我想以某种方式找到能够看到(或类似的东西) perl test.pl main::foo foomain::bar bar 原因是我正在尝试
如何在Perl中找到打印声明的源位置?
#!/usr/bin/perl

foo();
bar();

sub foo {
  print "foon";
}

sub bar {
  print "barn";
}

输出为:

>perl test.pl 
foo
bar

我想以某种方式找到能够看到(或类似的东西)

>perl test.pl 
main::foo> foo
main::bar> bar

原因是我正在尝试追踪一些胭脂输出,并且找不到它的位置在一个大的代码库.

解决方法

尝试这个:
#!/usr/bin/env perl

use strict;
use warnings;
use Tie::STDOUT print => sub {
  my ( $pkg,$file,$line ) = caller(2);
  print "$pkg,$line :: ",@_;
};

print "Hello,Worldn";

这使:

$perl tp.pl
main,tp.pl,10 :: Hello,World

更新:我刚刚发布了Devel::Ditto:

$perl -MDevel::Ditto myprog.pl
[main,t/myprog.pl,9] This is regular text
[main,10] This is a warning
[MyPrinter,t/lib/MyPrinter.pm,7] Hello,World
[MyPrinter,8] Whappen?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读