I use inside-out objects for my database persistence module, because it also helps with synchronization.
I'm intrigued. Can you show us some code?
One more thing:
So instead of using the pointer address as the key to the instance data hash, I use the primary key from the database. This is a big win, because there may be many objects instantiated that correspond to the same row in the database.
in contrast with:
So be sure to add:
sub DESTROY {
delete $agedata{+shift};
}
.. and clear out all instance data hashes.
Surely that will pose a problem if you can have several objects pointing to the same hash item? What do you do about that, do you keep a reference count yourself?
And I've been pondering if weak references could be used, to do the cleanup automatically for you. I just don't see how...