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