Vous faites des scripts Perl, et vous trouvez pratique l’organisation des tableaux associatifs (%hash) pour gérer de la configuration ?
Voici un moyen simple et rapide de gérer cette configuration dans un fichier externe, sans avoir à indiquer le nom de votre tableau associatif dans ce fichier.
Créez votre fichier de configuration en respectant la syntaxe Perl, par exemple :
service1 => { servers => [ 'server1', 'server2' ], tcp_port => 80, protocol => 'http', }, service2 => { servers => [ 'server3', 'server4' ], tcp_port => 21, protocol => 'ftp', },
Dans votre script Perl, chargez ce fichier de configuration de la manière suivante:
my $config = 'test.conf'; my %CONFIG; eval '%CONFIG = ( ' . `cat $config` . ')'; die "Error while loading configuration file: $@n" if $@;
Vous pouvez alors utiliser les éléments de configuration en utilisant:
# Affichage du protocol de "service1" print $CONFIG{'service1'}{'protocol'} . "n"; # Affichage du 2ème serveur de "service2" print @{$CONFIG{'service2'}{'servers'}}[1] . "n"; # Affichage de protocole:tcp_port, puis de la liste des serveurs pour tous les services foreach my $service (sort keys %CONFIG) { print $CONFIG{$service}{'protocol'} . ":" . $CONFIG{$service}{'tcp_port'} . "n"; foreach my $server (@{$CONFIG{$service}{'servers'}}) { print $server . "n"; } }