in reply to array stored in anonymous hash

The part of the push looks OK to me. I think your problem is in the part where you initialize the TreeNodes hash. Perhaps if you initialized it to [] instead of to '@'?