Soit les hashmap suivantes:
my %h1 = ("toto"=>"toto12", "test"=>"test12");
my %h2 = ("xavier"=>"0471...", "vincent"=>"047945...");
Il n'est pas permis d'écrire ceci en Perl
my @array=undef;
@array[0]=%h1;
@array[1]=%h2;
Il est impératif de référencer les hashmap dans le tableau:
my @array=undef;
@array[0]=\%h1;
@array[1]=\%h2;
Ceci fonctionnera beaucoup mieux.
Là où cela devient amusant c'est pour récupérer les hashmap contenue dans le tableau:
$array[1]->{vincent} me donnera 047945...
si je veux defnir %hmap qui contiendra la hash contenue dans $array[1] je pourrais faire comme suit:
%hmap=%$array[1];
Cela fera malheureusement planter PERL lamentablement.
soit j'écris
$hmap_ref=$array[1];
%hmap=%$hmap_ref;
Cela marchera mais pour un développeur PERL cette écriture est beaucoup trop lourde:
On pourra donc faire plus concis (et plus illisible) en utilisant ceci:
%hmap=%{$array[1]}
Attention c'est la déréférenciation d'un tableau et non pas la valeur de la clé d'une hash (dont la clé serait $array[1]).
Voilà de quoi s'amuser. ..
Inscription à :
Publier les commentaires (Atom)
Aucun commentaire:
Enregistrer un commentaire