Я хочу сделать неинтерактивную отладку моего кода.Код работает под httpd
с включенным mod_perl2
.
Согласно официальной документации Я могу сделать как
% setenv PERL5OPT -d
% setenv PERLDB_OPTS "NonStop=1 LineInfo=db.out AutoTrace=1 frame=2"
Насколько я понимаю, мне нужно использовать PerlSetEnv перевод apache setenv
на язык конфигурации apache2.Так что конфиг должен выглядеть так:
<IfDefine MODPERL>
LoadModule perl_module modules/mod_perl.so
...
PerlSetEnv PERL5OPT -d
PerlSetEnv PERLDB_OPTS NonStop
</IfDefine>
Я пытался с таким конфигом, но не выводил на STDERR, когда я обернул некоторый код на
$DB::frame = 1;
# code
$DB::frame = 0;
Что я мог пропустить?
PERLDB_OPTS
и PERL5OPT
являются точно правильными переменными:
$ cat 1.pl
#!/usr/bin/env perl
sub bar { foo() }
sub foo { }
sub hello {
$DB::frame=1;
bar();
$DB::frame=0;
}
hello();
$ PERLDB_OPTS=NonStop PERL5OPT=-d perl 1.pl > /dev/null
entering main::bar
entering main::foo