in reply to Reclassifying an object
I have actually seen this done in a couple of other languages. But, what was done was (basically ...) to initially instantiate an JustLoaded object, which possessed the necessary functionality to support loading things from a data source. The programmers then provided a factory method, which would coin an instance of the proper thing and return it (or, raise an exception). After that, the original object was discarded.
In Perl, this idea can be simplified to “re-blessing.” Instantiate an object that has support for the loading process, then re-bless it into its target class after confirming that all of the requisite instance-variables called for by that class do exist, and that the object is otherwise “sane.” (Or, re-bless it, then call an internal-only method that performs that sanity-check.)