in reply to memory leak Issue

In your new(), it seems you might have a reference to a "parent" object. If that parent also has a reference to the new object, that's a circular reference, and it will cause a memory leak. You'll need to use weaken from Scalar::Util in one of those places. There's a longer discussion of this in Re: deleteing references