Parcours
/
Perl
Perl
/
Programme
/
Références
Ré

Références en Perl

9 exercices

À propos de Références

Comprendre les références est un élément fondamental pour utiliser Perl efficacement. Comme les références sont des scalaires, et que les tableaux et les hash ne peuvent contenir que des scalaires, elles sont indispensables pour imbriquer ces structures de données.

On peut créer des références vers des variables et des sous-programmes existants à l'aide de l'opérateur antislash \ :

  • \$scalar pour créer une référence vers un scalaire (il peut s'agir de n'importe quel scalaire, par exemple \1, et pas seulement d'une variable).
  • \@array pour créer une référence vers un tableau.
  • \%hash pour créer une référence vers un hash.
  • \&sub pour créer une référence de code.

On peut aussi créer ce qu'on appelle une référence anonyme pour les tableaux, les hash et les sous-programmes :

  • ['Alice', 'Bob', 'Charlie'] pour créer une référence anonyme vers un tableau.
  • {foo => 'a', bar => 'b', baz => 'c'} pour créer une référence anonyme vers un hash.
  • sub { return 1 } pour créer une référence anonyme de code.

ATTENTION : les accolades en Perl peuvent être ambiguës dans certains contextes. Si tu n'obtiens pas la référence de hash attendue, ajoute un plus en tête pour lever l'ambiguïté, par exemple +{}. Voir Accolades pour plus d'informations.

On peut accéder aux références à l'aide de l'opérateur flèche -> :

  • $ref->[0] pour accéder à un élément à l'intérieur d'une référence de tableau.
  • $ref->{foo} pour accéder à une valeur à l'intérieur d'une référence de hash.
  • $ref->($arg) pour appeler un sous-programme via une référence de code.

On peut accéder aux données d'une structure de données complexe, comme un tableau multidimensionnel ou un hash imbriqué, en enchaînant les indices, par exemple $ref->{foo}[0]{bar} (équivalent à $ref->{foo}->[0]->{bar}).

Si tu veux déréférencer un tableau ou un hash entier, tu peux utiliser l'opérateur flèche suivi de @* ou de %* selon le cas, par exemple $ref->@* ou $ref->%*. Tu peux aussi obtenir des tranches d'une référence de tableau ou de hash en remplaçant le * par un indice, par exemple $ref->@[0..2] ou $ref->@{'Foo', 'Bar'}. Pour les tranches, la variance du sigil s'applique ici de la même manière qu'avec les variables de tableau et de hash.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet

Apprends Références

L'entraînement est verrouillé

Déverrouille 8 exercices de plus pour t'entraîner sur Références