TLDR: sub afterinit { push @DB::typeahead, "o compactDump=1" }
When I use the Perl debugger, I usually want the compactDump
option turned on. For reasons (?), I have never been able to set this option from the ~/.perldb
file. It should be possible to set options by using lines like
... parse_options("HistSize=100"); parse_options("compactDump=1"); ...
but when I try that with compactDump
, starting up the debugger gives me a lot of unsightly warnings:
[~/]$ perl -d -wE 'say "what"' Variable "$frame" is not imported at (eval 6)[/Users/lied/perl5/perlbrew/perls/perl-5.38.0/lib/5.38.0/perl5db.pl:7578] line 2. Variable "$doret" is not imported at (eval 6)[/Users/lied/perl5/perlbrew/perls/perl-5.38.0/lib/5.38.0/perl5db.pl:7578] line 3. perldb: couldn't parse ./.perldb: Global symbol "$frame" requires explicit package name (did you forget to declare "my $frame"?) at (eval 6)[/Users/lied/perl5/perlbrew/perls/perl-5.38.0/lib/5.38.0/perl5db.pl:7578] line 2. Global symbol "$doret" requires explicit package name (did you forget to declare "my $doret"?) at (eval 6)[/Users/lied/perl5/perlbrew/perls/perl-5.38.0/lib/5.38.0/perl5db.pl:7578] line 3.
A close reading of some Stack Overflow articles and the perldoc perldebug
documentation finally gave me a workaround. The following, added to ~/.perldb
, will enable compactDump
without the noise:
sub afterinit { push @DB::typeahead, "o compactDump=1" }
This assumes that we are using GNU readline
, which, of course we are.
Top comments (0)