>>>>> "LW" == Larry Wall <[EMAIL PROTECTED]> writes:
LW> That being said, in Perl 5, if you say LW> @a = undef; LW> you don't get an undefined array. I'd like to make undef smart enough LW> about list contexts that @a actually does end up undefined in Perl 6. LW> That is, in scalar context, undef is a scalar value as in Perl 5, but LW> in Perl 6, undef in list context means "there isn't anything here if LW> you try to look for it", so it's more like () in Perl 5, except that LW> it also undefines the array if it's the only thing in the array. then how would you assign undef to the only element of the array? would this be needed: @a = ( undef ) ; # same as p5? vs. @a = undef ; # like undef @a in p5? i have always railed against undef on aggregates as it leads to using defined on them which is not the same as checking if an aggregate has any elements. i see that often in newbie code. in fact i would like to stop allowing undef as a function with args and have it only return a scalar undef value. there should be a different op to truly make an aggregate undefined (and i still don't see a need for that, emptying it is all that i ever think is needed). in my world undef is a scalar value and nothing else. how do you see it in p6? uri -- Uri Guttman ------ [EMAIL PROTECTED] -------- http://www.stemsystems.com --Perl Consulting, Stem Development, Systems Architecture, Design and Coding- Search or Offer Perl Jobs ---------------------------- http://jobs.perl.org