On Fri, Aug 19, 2005 at 01:36:30AM +0800, Autrijus Tang wrote: : 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?
No, but it sounds least insane. :-) Larry