next up previous index
suivant: Les références sur les monter: Les références précédent: Déclaration - Syntaxe   Index

Création de références anonymes

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 !).


next up previous index
suivant: Les références sur les monter: Les références précédent: Déclaration - Syntaxe   Index
Olivier Aubert
1999-06-01