I posted a new module called IOC::Lite last week that contains a class that may be useful to you. It's called IOC::Lite::Adaptor. This class's job is to pretend to be another object while providing the means to add methods to it at runtime. It will be greatly enhanced in my next release (due out this weekend), but the current one may help you now (at least in concept).