I don't have a fixed way of using a configuration style. It all depends. I don't not like to use Perl hashes, mainly for two reasons:
- It only works for Perl programs. I also use tools, written by myself or by others, that were written in different languages, with shell, C, Pascal and Java the main languages being used here.
- There's too much syntax surrounding hashes. All needed for a Perl program of course but it gets in the way for a configuration file. Specially if it's a configuration file that might be modified by someone who isn't familiar with Perl.
I use configuration files written in the shell (for setting environment variables), written in Apache format (for parsing with Config::General), written in inifile formate (for parsing with Config::IniFiles), a few YAML files (a mistake I won't repeat - YAML files are human readable, but editing remains tricky), and lots of home grown formats with dedicated parsers. It may be more work to write the parser (but often, the parsers can be quite simple), but shear ease of writing the configuration file pays off.