我正在为我的调试器编写测试。
subtest "main" => sub {
$ENV{PERL5DB} = 'Devel::AllSubs';
my $stderr = capture_stderr {
sub foo { bar(); }
sub bar { 1; }
foo();
};
$ENV{PERL5DB} = '';
is $stderr, "main::foo\nmain::bar";
};
如何应用调试器
{
sub foo { bar(); }
sub bar { 1; }
foo();
}
块?
我试图使用$ENV{PERL5DB}
但没有效果。
你不能以你想要的方式使用$ENV{PERL5DB}
。
use Devel::AllSubs
)的完整命令-d
开关启动时才会检查它因此,为了将调试器仅应用于部分代码,您需要首先使用-d开关加载它,如下所示
perl -d:AllSubs script.pl
然后使用包变量来决定是否要处理代码。看看你的模块名称我假设你正在尝试对每个子程序做一些事情,所以你的测试可能想要在你的DB::sub
方法中