It depends on what kind of data is in the configuration
I usually use a Module called SomeNamespace::Config.pm which either contains the configuration or provides an interface for it, or uses "Plugins" like SomeNamespace::Config::AccessData.
- For synchronizing data for metadirectories, I often save the configuration of the connected directories in the central data directory and access it through Net::LDAP or DBI and write a little application to change it. And if you want to work with a version control system, you can easily put LDIF- or SQL-files under version control. This is very easy because if you have several systems (e.g. develop, test, integration, preproduction, production), you don't need to edit config files or perl code manually. The only problem is the data you need to access the central data directory: I either put them into a perl module like Namespace::Config::AccessData or the like, or put it into a little INI or YAML file.
- For web or Tk applications I like both YAML or ini files, or if it get's too complicated: even a perl module.
- For little command line scripts, Getopt::Long and friends are often absolutely ok
perl -e "s>>*F>e=>y)\*martinF)stronat)=>print,print v18.104.22.168.11.32"