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
