- Kerlinux.org - http://kerlinux.org -

Charger un tableau associatif depuis un fichier en Perl

Posted By SLiX On 25 juin 2010 @ 11 h 08 min In Informatique | No Comments

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";
    }
}

Article printed from Kerlinux.org: http://kerlinux.org

URL to article: http://kerlinux.org/2010/06/charger-un-tableau-associatif-depuis-un-fichier-en-perl/

Copyright © 2010 Kerlinux.org. Tous droits réservés.