OVH Cloud OVH Cloud

${} question

5 réponses
Avatar
thieb
bonjour,
après google et la doc perl dense ...
quelqu'un peut'il m'éclairer sur ${diplay},sur la signification des
accollades, je l'utilise dans un script telnet, mais je désire connaitre la
signification et son utilisation.


$display=fct(....);
th->cmd("export ${display}:0.0");
etc .......

merci d'avance pour votre compréhension.

5 réponses

Avatar
Emmanuel Florac
Le Fri, 18 Feb 2005 08:06:50 +0100, thieb a écrit :

quelqu'un peut'il m'éclairer sur ${diplay},sur la signification des
accollades, je l'utilise dans un script telnet, mais je désire connaitre la
signification et son utilisation.


C'est simple. Si tu as $toto="titi", alors ${$toto} est la même chose que
$titi.

Donc

$toto='titi'; ${$toto}='tutu'; print "$titin";

Affiche "tutu".

--
Sutor ne ultra Crepidam.

Avatar
Mathieu Arnold
Emmanuel Florac écrivait:


quelqu'un peut'il m'éclairer sur ${diplay},sur la signification des
accollades, je l'utilise dans un script telnet, mais je désire connaitre la
signification et son utilisation.



C'est simple. Si tu as $toto="titi", alors ${$toto} est la même chose que
$titi.

Donc

$toto='titi'; ${$toto}='tutu'; print "$titin";


Je crois plutot que dans son exemple, c'est pour que si l'on veux
afficher $foo dans :

"$foobar", il faut écrire "${foo}bar".

--
Mathieu Arnold


Avatar
Dav'
C'est comme en shell : les accolades sont utilisées pour proteger le
nom de la variable $display.
A mon avis ça ne sert à rien car un nom de variable ne peut pas
contenir le signe : et il n'y a donc pas de confusion possible .
Avatar
Paul Gaborit
À (at) 18 Feb 2005 02:01:10 -0800,
"Dav'" écrivait (wrote):
C'est comme en shell : les accolades sont utilisées pour proteger le
nom de la variable $display.


Entre autres...

A mon avis ça ne sert à rien car un nom de variable ne peut pas
contenir le signe : et il n'y a donc pas de confusion possible .


Il n'y a pas de confusion possible... dans l'exemple donné. Donc :

print "...${display}:autre chose...";

est effectivement équivalent à :

print "...$display:autre chose...";

Mais dans le cas suivant :

print "...${display}autre chose...";

ce n'est pas du tout équivalent à :

print "...$displayautre chose...";

sauf si $displayautre contient la même valeur que $display !

Après, en Perl, il y a d'autres utilisations de ${...} en particulier liées
aux références (symboliques ou non).

--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>

Avatar
Emmanuel Florac
Le Fri, 18 Feb 2005 10:02:34 +0100, Mathieu Arnold a écrit :


Je crois plutot que dans son exemple, c'est pour que si l'on veux
afficher $foo dans :

"$foobar", il faut écrire "${foo}bar".


Ah oui, j'ai lu un peu trop vite :)

--
Si ça a l'air facile, c'est difficile. Si ça a l'air difficile, c'est
carrément impossible. Si ça a l'air impossible, c'est un compilateur
Ada.
Théorème de Stockmayer.