you claimed that objects were getting destroyed even though you still have a reference to them, that should not happen, and if it is, then you've either found a serious bug in Perl or a serious bug in your code. so that needs to be tracked down and fixed before discussing the "basic approach", since obviously there is something wrong with it right now. SSCCE