Michael Lazzaro writes:

> On Wednesday, March 19, 2003, at 08:30  AM, Larry Wall wrote:
> 
> > We don't have a word for "START" right now.  It's somewhat equivalent 
> > to
> >
> >     state $foo //= 0
> >
> > unless $foo gets undefined, I suppose.
> 
> Assuming we have a static-like scope called C<state>, one can 
> definitely see the use of having an assignment variant for "not yet 
> initialized" or "doesn't yet exist", the proposed spelling of which was 
> C<::=>.

I'm unconvinced by the need for a cryptic way to distinguish undefined
from uninitialized.  Damian argued in favour of not being able to store
C<undef> in arrays that have some some other, explicit, default value.
I think his argument was that C<undef> is the value to indicate the lack
of a meaningful value, and that we shouldn't be encouraging people to
overload C<undef> with other meanings by making it easy to distinguish
it from a lack of their being a value.

If that applies there, I think it should apply here too.

Or, at least, if we want to make such a distinction here it should be
because we come up with good examples where the distinction is useful,
doing something that couldn't easily be achieved in some other way --
and that that usefulness is thought to outway the additional complexity
of having another assignment operator in the language and having to
distinguish it when teaching or learning Perl.

Smylers

Reply via email to