[Perl] appel par adresse

Olivier Mengué olivier.mengue at gmail.com
Jeu 27 Juil 10:19:17 CEST 2017


Le 26 juillet 2017 à 19:46, Patrick Dupre <pdupre at gmx.com> a écrit :

> Bonsoir,
>
> Je peux faire cela
> my $ptr = $band_mol -> {H_L} ;

$HL_factor = &$ptr ($J_low, 0, 1, $PQR) ;
>

$ptr contient donc une sub, n'est-ce pas ?
La ligne que tu écris est correcte. Mais la syntaxe générale d'appel
indirect à une sub via une variable est celle-ci :

    $HL_factor = $ptr->($J_low, 0, 1, $PQR);


> mais pas cela
>
> $HL_factor = &$band_mol -> {H_L} ($J_low, 0, 1, $PQR) ;
>

Il faut écrire :

  $HL_factor = $band_mol->{H_L}->($J_low, 0, 1, $PQR);

Le principe général est que le déréférencement de chaque niveau de
référence nécessite d'écrire une flèche (->).


>
> Pourquoi ?
>
> Merci.
>
> ============================================================
> ===============
>  Patrick DUPRÉ                                 | | email: pdupre at gmx.com
>  Laboratoire de Physico-Chimie de l'Atmosphère | |
>  Université du Littoral-Côte d'Opale           | |
>  Tel.  (33)-(0)3 28 23 76 12                   | | Fax: 03 28 65 82 44
>  189A, avenue Maurice Schumann                 | | 59140 Dunkerque, France
> ============================================================
> ===============
> _______________________________________________
> Perl mailing list
> Perl at mongueurs.net
> http://listes.mongueurs.net/mailman/listinfo/perl
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://listes.mongueurs.net/mailman/private/perl/attachments/20170727/edbeab3c/attachment.html>


Plus d'informations sur la liste de diffusion Perl