found 98430 5.14.0-1 notforwarded 98430 thanks On Thu, May 24, 2001 at 05:28:38PM +1000, Brendan O'Dea wrote: > [Full bug report details are at http://bugs.debian.org/98430. Please > retain 98430-forwar...@bugs.debian.org in the Cc field of replies.] > > Summary: A module which worked with 5.6.0 now chokes under 5.6.1 with a > compile-time error on goto& from an lvalued subroutine. > > Here's a small example program: > > package Bug; > $value = 'none'; > sub a :lvalue { $value } > sub b :lvalue { goto &a } > sub AUTOLOAD :lvalue { goto &a } > b() = 'sub' if grep /^sub/, @ARGV; > c() = 'auto-sub' if grep /^auto-sub/, @ARGV; > Bug->b() = 'method' if grep /^method/, @ARGV; > Bug->d() = 'auto-method' if grep /^auto-method/, @ARGV; > print "$value\n"; > > Note that if the AUTOLOAD in this example instead contains > > *$AUTOLOAD = sub :lvalue { $value }; > goto &$AUTOLOAD; > > which is closer to the code described in the bug report, the behaviour > is unchanged. Under 5.6.0, the following occurs: > > $ perl -w bug > none > $ perl -w bug sub > sub > $ perl -w bug auto-sub > Can't modify non-lvalue subroutine call at bug line 7. > $ perl -w bug method > method > $ perl -w bug auto-method > auto-method > > So there's only one case which doesn't work, where a non-method AUTOLOAD > is called and the exception occurs at run-time. > > The code doesn't compile under 5.6.1: > > $ perl -w bug > Can't modify goto in lvalue subroutine return at bug line 4, near "&a }" > BEGIN not safe after errors--compilation aborted at bug line 5. > > Basically any goto& within an :lvalue subroutine fails.
After 10 years, this test program still doesn't work. There was no follow-up from p5p to this post. I'm inclined to think that this was an unfortunat backwards-incompatible change made in 5.6.1, but that it's quite unlikely to be changed now. Any objections to be me closing this? -- Dominic Hargreaves | http://www.larted.org.uk/~dom/ PGP key 5178E2A5 from the.earth.li (keyserver,web,email) -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org