OVH Cloud OVH Cloud

Comportement de =~s et version de perl

2 réponses
Avatar
l.gondy
Bonjour,


j'essaie de supprimer le caractère | dans $_ :

s/\|//g;

cette instruction fonctionne avec perl 5.8.0 sous Windows XP
mais avec perl 5_005 sous Linux j'ai le $_ avec les caractère |

Est ce normal ?
comment faire autrement pour éviter ce Problème.
peut-faire avec tr ?


Merci de votre aide.
-----
posté via http://www.usenetgratuit.com/ plus de 40 000 newsgroups sur le
web. Pour signaler un abus: abuse@usenetgratuit.com

2 réponses

Avatar
Denis -esp2008-
Bonjour,

s/|//g;


Les expressions rationnelles servent à décrire des langages, lancer un s
pour faire cette commande me semble très largement excessif.

Avec tr, ça devrait fonctionner. tr/|//

Pour réponde complètement à la question, je pense que le plus simple
avec les caractères spéciaux est de mettre la valeur numérique ascii
(en octal ou hexadecimal), par exemple pour le '|' : 174.


Mais le problème est peut-être dans ce qui passe autour de ce s,
peut-être que $_ n'est pas positionné sur la chaîne souhaitée à ce
moment là (je ne vois que ça pour que ça change entre 2 versions de
perl).

Bonne chance,

--
Denis

Avatar
l.gondy
Denis -esp2008- wrote:



Avec tr, ça devrait fonctionner. tr/|//

Pour réponde complètement à la question, je pense que le plus simple
avec les caractères spéciaux est de mettre la valeur numérique ascii
(en octal ou hexadecimal), par exemple pour le '|' : 174.



Merci de cette réponse, je viens de résoudre le problème
avec un tr et l'utilisation d'une variable au lieu de $_.

Lionel.
-----
posté via http://www.usenetgratuit.com/ plus de 40 000 newsgroups sur le
web. Pour signaler un abus: