These are known issues. For persistance, Object::InsideOut and Class::Std::Storable both offer Storable hooks. (Also see my digression today: Hooks like Storable for Dumper?).
I plan on covering a lot of this at my Inside-Out Tutorial at the January Perl Seminar NY. Here's a snippet from my presentation -- you've really got four options for how to implement the storage/index of inside-out objects:
Array-based storage, with sequential object ID's stored in blessed scalar
Hash-based storage, with a generated unique object ID cached in a blessed scalar
Hash-based storage, with memory address of a blessed scalar cached in the scalar
Hash-based storage, with memory address of the blessed reference used directly
Each has pros and cons. There's some discussion on using memory addresses versus a UUID in Threads and fork and CLONE, oh my!. The latter is probably the way to go if you want to check if the object thawed is the same as an existing object.
For another good summary of inside-out issues, read Anti-inside-out-object-ism
-xdg
Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.
In reply to Re: Inside out objects and persistence
by xdg
in thread Inside out objects and persistence
by rinceWind
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |