fr:perl:perlre
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
fr:perl:perlre [2021/07/12 20:19] – ↷ Page moved from fr:perl:perlre to en:perl:perlre Bruno Manzoni | fr:perl:perlre [2024/05/11 16:05] (Version actuelle) – adminw1k1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ==== Référence ==== | ||
+ | |||
+ | Les références peuvent être complexes, c'est pourquoi nous avons simplifié toutes les informations que nous avons trouvées pour les rendre plus accessibles. Leur puissance est indéniable et elles sont essentielles pour la programmation en Perl. Cependant, nous sommes conscients qu'il est possible que nous ayons omis des détails importants. N' | ||
+ | |||
+ | === Règle n°1 : Ajoutez " | ||
+ | |||
+ | < | ||
+ | $array_ref | ||
+ | $hash_ref | ||
+ | $scalar_ref = \$scalar; | ||
+ | |||
+ | $xy = $array_ref; | ||
+ | $array[2] | ||
+ | $scalar | ||
+ | |||
+ | $array_ref | ||
+ | $hash_ref | ||
+ | Note : les crochets sont les mêmes que ceux utilisés pour accéder à un élément ! | ||
+ | |||
+ | @array | ||
+ | %hash = (APR, 4, AUG, 8); $hash_ref | ||
+ | |||
+ | Dans la deuxième forme (abrégée), | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | === Règle n°2 : Codez avec une variable non référencée " | ||
+ | |||
+ | < | ||
+ | Inversion de règle ou déséréférencement : (Alternative : Déséréférencement avec une flèche : recommandé) | ||
+ | |||
+ | @a = @{$array_ref}; | ||
+ | %h = %{$hash_ref}; | ||
+ | $s = ${$scalar_ref}; | ||
+ | |||
+ | et maintenant pour les éléments du tableau ou du hachage : | ||
+ | avec : $arref = \@array; $href = \%hash; $scaref = \$scalar | ||
+ | |||
+ | $array[3]=2; | ||
+ | est équivalent à | ||
+ | | ||
+ | est équivalent à ${$href}{3}=2; | ||
+ | |||
+ | @ array = | ||
+ | @{$arref} = | ||
+ | % hash = | ||
+ | %{$ href} = | ||
+ | $ scala = | ||
+ | ${$scref} = | ||
+ | |||
+ | | ||
+ | |||
+ | Cela signifie que nous pouvons coder sans référence et changer votre variable à la fin de var en {$var_ref} dans tous les cas !!! | ||
+ | |||
+ | Note2 : une référence est également un scalaire, mais faites attention : | ||
+ | avec : $array_ref = \@array; $hash_ref | ||
+ | $a = ${$array_ref}; | ||
+ | $h = ${$hash_ref}; | ||
+ | $s = ${$scalar_ref}; | ||
+ | |||
+ | Note1 : si nous déséférencions une référence, | ||
+ | Note2 : si nous référençons une déséférenciation, | ||
+ | Note3 : Pourquoi feriez-vous cela ?... | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | === Cas trivial et simplification, | ||
+ | |||
+ | < | ||
+ | Cas trivial et simplification, | ||
+ | ${\$scalar} => $scalar | ||
+ | @{\@array} | ||
+ | %{\%hash} | ||
+ | |||
+ | \${$scalar_ref} => $scalar_ref | ||
+ | \@{$array_ref} | ||
+ | \%{$hash_ref} | ||
+ | |||
+ | Vous ne devriez donc jamais avoir ceci : | ||
+ | ${\$ sûr à supprimer si la variable est un scalaire | ||
+ | @{\@ sûr à supprimer si la variable est un tableau | ||
+ | %{\% sûr à supprimer si la variable est un hachage | ||
+ | \${$ sûr à supprimer si la variable est une référence scalaire | ||
+ | \@{$ sûr à supprimer si la variable est une référence de tableau | ||
+ | \%{$ sûr à supprimer si la variable est une référence de hachage | ||
+ | |||
+ | Note1 : n' | ||
+ | |||
+ | mais qu'en est-il de cela : | ||
+ | \${$array_ref}[1] | ||
+ | |||
+ | 1. ${$array_ref}[1] | ||
+ | 2. \${$array_ref}[1] | ||
+ | |||
+ | Comme vous pouvez le voir, il n'est pas sûr de le supprimer car la variable n'est pas un scalaire.... | ||
+ | |||
+ | </ | ||