in reply to OOP and import()

as far as I know base does not (in general/reliably) call import(). While a use SomeClass; will always call SomeClass->import() which is then resolved using the regular inheritance mechanism (which is how Exporter works, for example) i.e. - if SomeClass::import is there, it call that, otherwise it works itself up the inheritance (@ISA) tree for SomeClass.

update: note that if you need your code in SomeClass to run only once per process (instead of once per use) you can just put that code outside of any subroutine in SomeClass.pm and it will get run the first time that module is require()d or use()d.

See also use and require.

update 2 there is no modeling reason any of your modules should inherit from the configuration at all. I would go as far as to say that that would be a badly implemented model. (though you could make the case that it should inherit from a base that has access to the configuration). See also my reply to Sharing data between children modules.