> > print keys %hash, "\n";
> > exists $hash{key}{subkey};
> > print keys %hash, "\n";
>
> >Or did that get fixed when I wasn't looking?
>
> No, the -> operator has not been changed to do lazy evaluation.
That's not required. All that is necessary is for C<exists> nodes
in the op tree to propagate a special non-autovivifying context to
subordinate nodes.
E.g. exists $hash{key}{subkey}
exists
\
entry
/ \
entry "subkey"
/ \
%hash "key"
Is preprocessed to:
exists
\
entry(na)
/ \
entry(na) "subkey"
/ \
%hash(na) "key"
which prevents %hash from autovivifying, which causes the left-most
branch to fail (without autovivifying) when asked for "key", which in
turn causes the entire <exists> to fail without autovivifying.
> I just don't like reading "exists causes autovivification" when it
> doesn't.
Sorry, I was being philosophically sloppy. A call to C<exists> can
*result* in autovivification (of something), though it does not itself
*cause* autovivification.
;-)
Damian
- Re: RFC 188 (v1) Objects : Private keys and metho... Tom Christiansen
- Re: RFC 188 (v1) Objects : Private keys and m... Bart Lateur
- Re: RFC 188 (v1) Objects : Private keys a... Tom Christiansen
- Re: RFC 188 (v1) Objects : Private keys and metho... Jonathan Scott Duff
- Re: RFC 188 (v1) Objects : Private keys and metho... Damian Conway
- Re: RFC 188 (v1) Objects : Private keys and methods Glenn Linderman
- Re: RFC 188 (v1) Objects : Private keys and methods Damian Conway
- Re: RFC 188 (v1) Objects : Private keys and methods Damian Conway
- Re: RFC 188 (v1) Objects : Private keys and methods Damian Conway
- Re: RFC 188 (v1) Objects : Private keys and metho... Tom Christiansen
- Re: RFC 188 (v1) Objects : Private keys and methods Damian Conway
- Re: RFC 188 (v1) Objects : Private keys and metho... Tom Christiansen
- Re: RFC 188 (v1) Objects : Private keys and m... Tom Christiansen
- Re: RFC 188 (v1) Objects : Private keys and methods Damian Conway
- Re: RFC 188 (v1) Objects : Private keys and metho... Tom Christiansen
- Re: RFC 188 (v1) Objects : Private keys and methods Damian Conway
