in reply to Pluggable Modules

Have you looked at Module::Pluggable?