On Tue, Nov 16, 1999 at 06:08:18AM -0700, Tom Christiansen wrote: > >$a = 5; > >sub a { print $a } > >sub b {local $a = 9; goto &a} > >b; > > >This still prints 5... :-( > > And this is a problem exactly how? > b()'s frame goes away. So its local view of $a went away. This is an implementation detail. IIRC, it is documented that frame is replaced, not goes away. What happens/should-happen with locals during "replacement" is debatable. > I do not find this behaviour astonishing. I never said it was. However, while not astonishing, it is unpredictable. Different implementation might be possible. What happens, however, is making some "normal programming constructs" much harder to implement. Ilya