On Thu, Aug 18, 2005 at 10:26:00AM -0700, Larry Wall wrote: > Sure. Though it probably also wants to stay as metadata associated > with the signature, since part of the reason for putting it in > the signature in the first place is so that optimizers can install > constants on the caller end, at least for ordinary sub calls. Also, > desugaring a predeclaration would tend to cloak the yadae at the end, > but maybe that's not a problem unless you use the presence of bare > yadae in the body to suppress redefinition warnings.
The full desugared form is, I think: our &foo; # lifted to beginning of package! ... BEGIN { &foo := a Sub is stub { ($a) := &?Internals::GETARGS(); $a = 1 unless exists $a; # real body begins here ... }; } with the "is stub" -- not neccessarily exposed to the user level -- filled in by a parser rule, i.e. a predefined macro. Does this sound sane? Thanks, /Autrijus/
pgpVR42LVke0G.pgp
Description: PGP signature