|No such thing as a small change|
As much as I'd hate this to be a 'me too' post, I find your discussion on representing static config in OO form interesting. In many of my own projects I find myself concentrated on other areas and fail to give enough attention to the configuration piece (as long as there's a way -- any way -- to access my config, I'm ok ;-))
I probably have a very basic question..
When you invoke the config() method on your My::Base object, it would create create a brand new instance of the My::Config class. I'm wondering if, eventually, you should be adding a check to see that if the config object has already been created, then you don't re-created anew. There could be an exception to this rule when the config object is flagged 'dirty'. The 'dirty' flag could be toggled when the base directory is reset (via the base_directory() method), for example.