Tree comes with a persistence layer called Tree::Persist. However, I would consider that deprecated and would recommend persisting with DBM::Deep using the autobless option.
My criteria for good software:
Does it work?
Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
Comment on Re: how to construct tree from parent pointer list
Just so you know, Data::Dump::Streamer has some new (and IMO pretty sophisticated) support for supporting special serialization of objects. If you need to add persistancy to an object I suggest you look into the DDS_freeze() method.