in reply to Re^3: DBM::Deep Problem
in thread DBM::Deep Problem

That's not quite the problem. You're mixing up the MLDBM strategy (which ties only the top level hash) with the DBM::Deep strategy, which can return tied objects for every level, provided you don't tickle the autovivify bug.

If you understand what's happening, you'll see that what you just did is unneeded.

The autovivify bug is that STORE is not called on tied hash %H when $H{foo}->{bar} = 3 autovivs a hashref in foo. This is a legitimately broken problem. The workaround is doing it step by step:

$H{foo} ||= {}; # manual viv to work around tie-autoviv bug $H{foo}{bar} = 3; # now this gets stored right

And this is not the problem in MLDBM. MLDBM is simple-minded, attempting to tie only the top-level hash.

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.