défi perl

Florent Guiliani fguiliani at perinfo.com
Thu Dec 22 16:27:25 CET 2005


Amis scripteurs bonjour,

Aujourd'hui je me pose la question suivante "En perl, comment déclarer 
automatiquement
des variables provenant d'une hashtable avec clé = valeur ?"

Je m'explique: j'ai un tableau de hashtable ex:
my @tableau = (   { "cle1"=>"valeur1", "cle2"=>"valeur2" } ,
                             { "cle1"=>"valeur3", "cle2"=>"valeur4" } ,
                             { "cle1"=>"valeur5", "cle2"=>"valeur6" }
                      );

je parcour ce tableau comme ceci:

my $nbelement = scalar( @tableau );
for( my $i ; $i < $nbelement ; $i++){
    #et là j'accède à $tableau[$i]{'cle1'} ou $tableau[$i]{'cle2'}
    #j'en profite pour déclarer:
    my $cle1 = $tableau[$i]{'cle1'};   # c'est ces 2 déclarations
    my $cle2 = $tableau[$i]{'cle2'};   # qui nous intéressent ici
    #reste du traitement
}

J'aimerais que ces 2 déclarations (en réalité un bonne dizaine et qui en 
plus ne cesse d'augmenter)
soient faites automatiquement, j'aimerais faire un truc du style:

my $nbelement = scalar( @tableau );
for( my $i ; $i < $nbelement ; $i++){
       map( eval \$$_ = $tableau[$i]{'$_} ,   keys $tableau[$i] );
}

mais voilà je but.... qqun aurait une idée ?

Florent,





More information about the Shell mailing list