>>>>> "gl" == greg london <[EMAIL PROTECTED]> writes:

  gl> There just seems to be a fair expectation
  gl> that 'exists' shall do no harm. That's the
  gl> whole point of it. 

  gl> If you're simply testing the boolean value
  gl> I could see autovivification kicking in,
  gl> but damnit, exists is meant to avoid it.

the semantics of exists cause it to look for a single key in a
hash. perl executes the expression down to the last hash level
(autovivifying along the way) and passes that last level to exists. it
is just the way it was specified when first introduced in perl5. perl4
didn't even have exists so there was no easy way to tell the difference
between no key or key with the value undef. i would agree this is not a
good design but it won't be changed as it has been this way too long. as
i said, perl6 will correct to the meaning you (and many others) want.

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
_______________________________________________
Boston-pm mailing list
[EMAIL PROTECTED]
http://mail.pm.org/mailman/listinfo/boston-pm

Reply via email to