>>>>> "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

Reply via email to