develooper Front page | perl.perl6.language | Postings from April 2005

Truely temporary variables

Thread Next
Aaron Sherman
April 15, 2005 08:45
Truely temporary variables
Message ID:
Among the various ways of declaring variables, will Perl 6 have a way to
say, "this variable is highly temporary, and may be re-declared within
the same scope, or in a nested scope without concern"? I often find
myself doing:

	my $sql = q{...}; some DB stuff...
	my $sql = q{...}; more DB stuff...

This of course results in re-defining $sql, so I take out the second
"my", but then at some point I remove the first one, and strict chews me
out over not declaring $sql, so I make it "my" again.

This is a cycle I've repeated with dozens of variations on more
occasions than I care to (could?) count.

What I'd really like to say is:

	throwawaytmpvar $sql = q{...};
	throwawaytmpvar $sql = q{...};

without problems. Of course, "throwawaytmpvar" is a bit long, but you
get the idea.

It should probably be illegal to:

	throwawaytmpvar $sql = q{...};
	my $sql = q{...}; # Error: temporary became normal lexical

or for that matter even give it a new type:

	throwawaytmpvar int $i = 0;
	throwawaytmpvar str $i = "oops"; # Error: redefinition of type

There might be other assumptions that this implies. For example, it
might be considered always thread-private and might be required to be a
core, unboxed type. These extra assumptions are only worth it if they
enhance the optimization possibilities surrounding such a value.

Aaron Sherman <>
Senior Systems Engineer and Toolsmith
"It's the sound of a satellite saying, 'get me down!'" -Shriekback

Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About