Bonjour,
J'ai pris les sources d'un script dans lequel il y a une variable @$msg. (cf ici)
Et j'ai du mal à l'utiliser dans un parser, je cherche donc ce qu'est ce genre de variable pour comprendre comment l'utiliser.
Merci d'avance
Bonjour,
J'ai pris les sources d'un script dans lequel il y a une variable @$msg. (cf ici)
Et j'ai du mal à l'utiliser dans un parser, je cherche donc ce qu'est ce genre de variable pour comprendre comment l'utiliser.
Merci d'avance
Ici, $toto est une référence à un array anonyme. On peut aussi l'obtenir en prenant la référence d'un array nommé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $toto = [2, 4, 6];
@$toto, donc, est l'expression qui parle des éléments dans leur ensemble.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $toto = \@ARGV;
On obtiens le premier élément d'une référence à un array avec la flèche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 print join( '|', @$toto ); # donne 2|4|6
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 print $toto->[1];
Si j'ai bien compris c'est un genre d'objet contenant un tableau?
Oui, c'est ça plus ou moins. On peut passer l'objet $msg à droit à gauche sans copier tout le bazar. Si tu penses à des pointeurs en C tu seras pas loin. Mais attention c'est opaque. Ce n'est parce que tu affectes 'ARRAY(0x0193f3c36)' à un scalar que tu vas tomber sur l'array qui existe à cet emplacement en mémoire.
Ok cool merci j'ai compris
Je pensais bien à un pointeur
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager