4 votes

Comment puis-je gérer les fichiers de configuration en Perl?

Je suis en train de retravailler un vieux script qui effectue des opérations sur différents sites. Il doit utiliser un fichier de configuration qui est actuellement un fichier texte analysé manuellement avec ce format :

label:domain:username:password:path

Évidemment, le nombre de lignes est potentiellement illimité.

Je sais qu'il existe quelques modules qui gèrent les fichiers de configuration. Lequel est le meilleur pour cette situation?

5voto

DVK Points 63282

Si vous cherchez à changer le format, veuillez consulter les recommandations ici :

Comment gérez-vous les fichiers de configuration en Perl ?

Si vous cherchez à analyser le format existante, ce format semble être plus un fichier séparé par des virgules qu'un fichier "configuration", donc je dirais d'opter pour Text::CSV (il vous permet de choisir un caractère séparateur dans un constructeur, donc vous pouvez faire séparé par des deux-points au lieu de séparé par des virgules), ou pour des fichiers très volumineux Text::CSV_XS.

use Text::CSV; # Exemple adapté à partir de POD

my @rows;
my $csv = Text::CSV->new ( { sep_char => ":" } )  
             or die "Impossible d'utiliser le CSV: ".Text::CSV->error_diag ();

open my $fh, "<:encoding(utf8)", "test.conf" or die "test.conf: $!";
while ( my $row = $csv->getline( $fh ) ) {
    push @rows, $row; # $row est une référence de tableau contenant vos champs
}
$csv->eof or $csv->error_diag();
close $fh;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X