would it be undef or "foo"? if the former, how could I make $var to
contain a copy of original content?
using analogy with my $x = $x, that's not going to work..
temp $var = $OUTER::var?
OTOH,
my @a = ... # something not lazy with 10_000_000 elements..
{
temp @a; # ouch! temporal clone!
}
that could hurt..
It's undef if we follow Perl 5. (Early Perls actually kept the original
value, but that was deemed improper at some point.)
: if the former, how could I make $var to
: contain a copy of original content?
: using analogy with my $x = $x, that's not going to work..
:
: temp $var = $OUTER::var?
That's presumably correct if we take "my" as the prototype. Though
temp is just an operator, not a declarator, and depending on order
of evaluation it's possible that
temp $var = $var
might do the right thing. Then again, it might not.
: OTOH,
:
: my @a = ... # something not lazy with 10_000_000 elements..
: {
: temp @a; # ouch! temporal clone!
: }
:
: that could hurt..
Perl 5 actually localizes a binding when you do that rather than
copying. Perl 6 can presumably distinguish binding from copying,
so we probably need to encourage people to bind temporarily rather
than assigning. And bare
temp @a;
would be taken as equivalent to
temp @a := ();
Larry