print caratere special

print caratere special - Perl - Programmation

Marsh Posté le 04-11-2009 à 15:40:16    

Bonjour,
 
Comment peut on indiquer à perl de ne pas interpréter ce qu'il a à écrire dans un fichier.  
Exemple: je fait  
print "test\'e";
 
il m'ecrit uniquement  
test'e
 
Merci de votre aide.
 

Reply

Marsh Posté le 04-11-2009 à 15:40:16   

Reply

Marsh Posté le 04-11-2009 à 17:45:49    

utilise des simples '

Reply

Marsh Posté le 06-11-2009 à 15:30:26    

Sauf que ça marche pas chez moi, j'ai testé: print 'test\'e'; et print "test\'e"; ca donne dans les deux cas: test'e
Par contre, ce qui marche, c'est print q{test\'e}; qui donne test\'e
Je dois dire que je suis un poil interloqué, car normalement q{...} et '...' sont équivalents.
Peut être un bug de ma version (ActiveState: This is perl, v5.10.1 built for MSWin32-x86-multi-thread), j'aimerais savoir ce qu'il en est avec une version Unix de la 5.10
 
Le truc a retenir, c'est qu'on peut utiliser q{....} (s'il n'y a pas de } dans ce qu'on quote). Ca marche aussi avec d'autres caractères non alphanumériques: q!...! ou q=...=
A+,


Message édité par gilou le 06-11-2009 à 15:39:07

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 06-11-2009 à 15:39:44    

Sauf que quand même, q{\'} marche mais pas q{\}.
C'est un peu nébuleux ce truc.

Reply

Marsh Posté le 06-11-2009 à 15:47:29    

J'ai compris: Parce que dans un environnement q{...}, \} est la seule combinaison qui est reconnue comme un échappement.
Si tu fais print q{\}}; ca donnera }
C'est d'ailleurs pour ça que print 'test\'e'; marche, et ne plante pas parce qu'on a trois '
le \' est la seule combinaison reconnue comme un échappement dans ce contexte, est est interprété comme un ' ce qui explique le test'e obtenu en sortie.
Donc en fait, l'environnement "sans interprétation" en a en fait une, la combinaison \ et le caractère délimiteur de fin de quote, interprété comme un simple caractère de la chaine et non comme un délimiteur.
A+,


Message édité par gilou le 06-11-2009 à 15:48:37

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed