如何在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? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |