On Fri, Apr 15, 2005 at 11:45:16AM -0400, Aaron Sherman wrote:
: 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.

And at that point, why not just change it to this?

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

It seems to me that assignment does a pretty good job of clobbering a
variable's value without the need to redeclare the container.  If you
really want to program in a definitional paradigm that requires every
new definition to have a declaration, then you ought to be giving
different definitions different names, seems like, or putting each
of them into its own scope.  Or write yourself a macro.  Or just turn
off the redefinition warning...

It doesn't seem to rise to the level of a new keyword for me.


Reply via email to