Table des matières

Notation fléchée

Équivalence :

$array[$x]->{"foo"}->[0] = "January";
$array[$x]{"foo"}[0] = "January";
mais
$array->[$x]{"foo"}[0] = "January"; (INCORRECT, car le tableau n'est pas une référence)

Déréférencement

${$arrayref}[0]     =  ${$arrayref}->[0]     =  $arrayref->[0]    = "January";  
${$hashref}{"KEY"}  =  ${$hashref}->{"KEY"}  =  $hashref->{"KEY"} = "VALEUR";

${$coderef}(1,2,3)  = ${$coderef}->(1,2,3)  =  $coderef->(1,2,3)     Appel de sous-programme ou objet de méthode 


${$aref}[3]   $aref->[3] à la place.
${$href}{red} $href->{red}

Règle n°3 : remplacer ${ } par ->

Pour les scalaires uniquement, recommandé
Comparer
                    ${$aref} [3]
                      $aref->[3]

                    ${$href} {red}
                      $href->{red}

remplacer             ${     }
par                         ->

Comme nous pouvons le voir, cela ne fonctionne qu'avec le déréférencement scalaire @array = @{$array_ref}

$objref   = new Doggie( Tail => 'short', Ears => 'long' );
$objref   = Doggie->new( Tail => 'short', Ears => 'long' ); (recommandé)