suivant: Les références sur les
monter: Les références
précédent: Déclaration - Syntaxe
  Index
Nous avons vu jusqu'ici comment créer une référence à partir
d'une variable existante. Mais il est également possible de créer
des références sur des structures anonymes en vue d'obtenir des
structures de données plus complexes.
Voilà par exemple comment créer un tableau de tableaux :
@liste = ();
for $i ('A'..'z')
{
push(@liste, [ $i, ord($i) ]);
}
print @{$liste[0]};
# -> affichage de ('A', 65) sous la forme A65
print ${$liste[0]}[0];
# -> affichage de 'A' sous la forme A
# ou bien
@paire = @{$liste[0]};
print $paire[0];
# -> affichage de 'A' sous la forme A
Ceci va créer un tableau à deux dimensions (ou plutôt un tableau
de tableaux).
La notation [] renvoie une référence sur un tableau
composé des éléments que les crochets renferment.
De la même manière, la notation {} renverra une
référence sur un tableau associatif composé des éléments
encadrés par les accolades :
@liste = ();
for $i ('A'..'z')
{
push(@liste, { "caractere" => $i,
"valeur" => ord($i) } );
}
print %{$liste[0]};
# -> affichage du tableau associatif ("caractere" => "A",
# "valeur" => 65)
# sous la forme caractereAvaleur65
print ${$liste[0]}{"caractere"};
# -> "A"
# ou bien
%paire = %{$liste[0]};
print $paire{"caractere"};
# -> "A"
On peut ainsi imbriquer plusieurs niveaux de références pour
créer des structures de données complexes (mais attention à la
mémoire utilisée !).
suivant: Les références sur les
monter: Les références
précédent: Déclaration - Syntaxe
  Index
Olivier Aubert
1999-06-01
|