Aaron Sherman skribis 2005-04-15 11:45 (-0400): > What I'd really like to say is: > throwawaytmpvar $sql = q{...}; > throwawaytmpvar $sql = q{...};
I like the idea and propose "a", aliased "an" for this. > 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 Giving it a new type should be valid. That is, I think the variable is more useful if the old one is thrown away and a new one is created. This can perhaps be optimized by re-using the same thing if it has no external references anymore. In fact, a Str $foo = $foo; is a nice way to indicate that from now on, you don't care about its numeric value anymore. All in all, I think a|an can just be my without warnings and then do what you want. Hm. Funny idea just occurred to me. What if something in ALLCAPS, or better, just Ucfirst would disable all warnings for just that thing? my $foo; say $foo; # warning about undef $foo Say $foo; # no warning $closed_fh.print(Int($foo)); # just a warning about the closed fh my $foo; # warning about new $foo masking first My $foo; # no warning If you think this looks much like PHP's @, you're right. It's not so bad an idea, actually. The problem with PHP is that everything's a warning and almost nothing actually dies. No, Ucfirst it can't be, I think. And ALLCAPS is ugly. @ is taken (and ugly). Suggestions? Juerd -- http://convolution.nl/maak_juerd_blij.html http://convolution.nl/make_juerd_happy.html http://convolution.nl/gajigu_juerd_n.html