>>>>> "LW" == Larry Wall <[EMAIL PROTECTED]> writes:

  LW> As I mentioned in my other message, I think we should not assume that
  LW> Perl 6 works the same in this regard as Perl 5 does.  There needs to be
  LW> something we can return that not only means (), but means also means
  LW> "You're hosed! (And here's why.)"  And I think we can make undef mean
  LW> that if we make it lazily sensitive to scalar/list context (much like @a
  LW> itself can be lazily sensitive to context).

  LW> Hmm, maybe it would simpler to just tell everyone undef is a special empty
  LW> lazy array that refuses to produce a value no matter how you ask.

why use undef for the error code? isn't this what exceptions are for? or
setting $!? i actually use naked return as a postive thing in stem
(string return values are bad and have the error string. it is
consistant so it works). the problem with returning undef (or naked
return) is that it is in-band data. now you could do a naked return but
error thing. and then the called has to check for that property each
time. but what does that mean when you do this (bad p6 code):

        sub return_error { return but error }
        my @a = return_error() ;

is @a empty or what? how do you see the error in @a?

i just don't like seeing undef used for error handling as it has too
many other uses (even if i did it in stem). just make undef a scalar
value and not a function nor a error marker.

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