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?


Reply via email to