Archivos de configuración
En mi opinión un archivo de configuración debe estar escrito en un formato que pueda ser interpretado tanto por un humano como por un programa; eso descarta en la práctica al lenguaje XML y sus derivados, pero no es una opinión condenatoria, es simple gusto personal.
Aunque los archivos de configuración sean leídos la mayor parte de las veces, también es de agradecer que las herramientas que usemos puedan guardarlos, bien modificando el que existe (casi impensable en el momento en que tenga comentarios), bien grabándolo de nuevo.
Por otra parte es una costumbre muy extendida que un programa tenga un archivo
de configuración global en un lugar como /etc
, y acceda, o al menos
busque, en otros sitios como el directorio personal del usuario ($HOME
), e
incluso en el directorio de trabajo si su contenido se aplica a un proyecto
concreto.
Eso sí, en casos de varios archivos se presentan algunas dudas:
- ¿ Se pueden fusionar los distintos archivos de configuración ó prevalece el último lugar donde busquemos ? En el ejemplo citado sería el directorio actual.
- En caso afirmativo a lo anterior, ¿ debemos fusionar los resultados, añadiendo valores ó sustituyéndolos ?
Herramientas que he usado
- Config::General: fantástico módulo para leer archivos de configuración estilo Apache, que incluye casi todas las variantes de definición de datos conocidas en el mundillo UNIX, así como la posibilidad de incluir otros archivos de configuración en el momento.
Herramientas que NO he usado
- Config::IniFiles: recomendado por Damian Conway en Perl Best Practices por su sencillez de uso.