perl – 如何打印所有已执行的子程序?
发布时间:2020-12-15 23:22:57 所属栏目:大数据 来源:网络整理
导读:例如.我有跟随Perl脚本 { package A; { package B; sub _y { print "Just Another Perl Hackern"; } } sub _x { print "Hello world!n"; B::_y(); }}use strict;use warnings;_x(); 如何使用包限定符将每个执行的子打印到STDERR或任何日志文件? 例如.从上
例如.我有跟随Perl脚本
{ package A; { package B; sub _y { print "Just Another Perl Hackern"; } } sub _x { print "Hello world!n"; B::_y(); } } use strict; use warnings; _x(); 如何使用包限定符将每个执行的子打印到STDERR或任何日志文件? 例如.从上面的脚本我希望看到以下输出: 1 A::_x() 2 B::_y() 我认为可以使用像Devel :: NYTProf这样的调试器,但我还没有找到特定的调试器模块或它们的参数来完成这个简单的任务. 有任何想法吗? 解决方法
它可以使用标准的perl调试器完成:
$PERLDB_OPTS="NonStop frame=1" perl -d prog.pl entering CODE(0x260cd78) entering strict::import entering CODE(0x260cd18) entering warnings::import Package try.pl. entering DB::Obj::_init entering A::_x Hello world! entering B::_y Just Another Perl Hacker (注意,我必须将_x();更改为A :: _ x();以使代码运行.) 如果要将输出放在文件中,请添加LineInfo = filenamehere.有关详情,请参见 CODE引用用于围绕use语句的隐式BEGIN块: use strict; 真正意思 BEGIN { require "strict.pm"; strict->import(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |