in reply to To Extend, to Use, to Create

Way I look at it is like this... if I'm extending a module (adding functionality to it), want to override one or more of its methods, or need access to the internals, I inherit (ie. @ISA) it. If all I want to do is use its functionality, use it is.

You want to add functionality to an existing module. If all your new module is for is to extend the original without adding anything unrelated, inherit from it.

Aside from that, I've taken to use JSON for all of my configuration anymore. It's cross platform, and is very easily converted into a language specific data structure. I've used JSON between Perl, Python, C++, C#, JS/jQuery etc. JSON is easily transmitted over the web without having to worry about files at all, and all languages I work with can easily handle it without writing custom parsers. Not only that, JSON strings store very easily in a database (or on Windows, the registry) as well.