in reply to TIEHASH hiccup?

My first guess is that the first line works because of auto-vivification. In that line, you refer to $o{0} without trying to use the value as a hash reference itself. This triggers FETCH, but doesn't actually use the returned value anywhere. After this initial call to FETCH it appears to work (according to your testimony-- I don't have a MSWin32 box to try and reproduce this on).

In the second case, you are trying to directly utilize the value from $o{0} as a hash reference. I'm not sure what part of your FETCH routine is the source of the problem, but that would be the place to start looking.

--rjray

Replies are listed 'Best First'.
Re: Re: TIEHASH hiccup?
by jhanna (Scribe) on Mar 19, 2002 at 20:29 UTC
    Right... I'm tracking it down to flakiness in the Win32 GDBM. It's a curious bug, though -- something of a Heisenberg bug -- it's only there when you measure it. I tried it on by FreeBSD box and it worked fine.