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

Truely temporary variables

Thread Next
From:
Aaron Sherman
Date:
April 15, 2005 08:45
Subject:
Truely temporary variables
Message ID:
1113579916.5809.5744.camel@pps
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{...};
	...do some DB stuff...
	my $sql = q{...};
	...do 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 <ajs@ajs.com>
Senior Systems Engineer and Toolsmith
"It's the sound of a satellite saying, 'get me down!'" -Shriekback



Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About