in reply to Unexpected exists() behavior

You cannot test for {c}{1}'s existence without {c} existing first, and if you do test for {c}{1}'s existence when {c} itself does not yet exist, it will spring into existence so that {1} can be tested. This is one of the common pitfalls of autovivification. The obvious solution is to only check for {1} after you know {c} exists.


Dave

Replies are listed 'Best First'.
Re^2: Unexpected exists() behavior
by ikegami (Patriarch) on Jun 22, 2006 at 16:57 UTC

    In this case, change
    exists $List{"c"}{"1"}
    to
    exists $List{"c"} and exists $List{"c"}{"1"}