buggy debugger command 'a' in recent perls?

[email protected] (Heiko Eißfeldt) Mon, 28 Dec 2009 17:30:06 +0100
Newsgroups perl.perl5.porters,perl.debugger
Message-ID <[email protected]>
Hello all,

I am having a little trouble with the action command 'a'
under recent perls.

For example when i use the following little program with the
'a' (action) command in recent perls (up to 5.11.3) under linux,
I am getting an unexpected warning message, after control leaves
the scope of the subroutine. It looks to me as if the
evaluation of the action is done at the wrong place
(as $arg is not in scope anymore after 'return').

Can this be written into a test?
Thanks, Heiko

simple.pl:
==========================
use strict; use warnings;

greet('Hello');

sub greet
{
	my $arg = shift;
	print "$arg\n";
	return;
}
==========================

A debugging session with an action that prints $arg, before the 
subroutine returns, follows. Please note the warning message at
the end.

========================================================================
heiko@heiko-desktop:~/perl/my_tests$ perl5.11.3 -wd simple.pl

Loading DB routines from perl5db.pl version 1.33
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

sigwarn handler installed!
main::(simple.pl:3):	greet('Hello');
   DB<1> a 9 print " \$arg = $arg\n"
   DB<2> c 9
Hello
main::greet(simple.pl:9):		return;
  $arg = Hello
   DB<3> s
Debugged program terminated.  Use q to quit or R to restart,
   use o inhibit_exit to avoid stopping after program termination,
   h q, h R or h o to get additional info.
Use of uninitialized value $arg in concatenation (.) or string at (eval 
8)[/home/heiko/localperl/lib/5.11.3/perl5db.pl:638] line 1.
  $arg =
   DB<3>
========================================================================