Bonjour,
Tout d'abord mon souci :
Une variable chaine de caractère (récupérée d'une manière X que j'évoquerais plus tard), que j'appellerais $toto1 et que j'imprime à l'écran via un script Perl a cette tête, somme toute classique :
toto
Ah oui, les habitudes...
Bon, maintenant j'essaye de comparer cette chaine à une autre chaine "toto" (celle-ci définie en dur dans une variable que j'appelle $toto2 avec une affectation du genre $toto2 = "toto") : pas d'égalité trouvée !!!
et pourtant je teste avec un if ( $toto1 eq $toto2 )
bon, par curiosité je teste avec un if ( $toto1 == $toto2 ) mais évidemment j'obtiens une erreur...MAIS...dans le message d'erreur je vois ma variable qui ne s'appelle plus "toto" mais "\0t\0o\0t\0o\0" !!!
Argument "\0t\0o\0t\0o\0" isn't numeric in numeric eq (==) at ./test.pl line 272.
Je comprends mieux que l'égalité ne soit pas trouvée !!!
Pour aller plus loin, voici d'ou viens ma variable :
c'est un fichier de type xml que je parse avec XML:: DOM
J'ai essayé de récupérer la variable avec un getData ou bien avec un toString mais rien n'y fait.
Lorsque j'ouvre le fichier avec un éditeur de texte ou sous Firefox, je ne vois pas ces caractères \0
Lorsque je print sous perl mes tests, je ne vois pas ce caractère \0 :
C'est pourquoi je suis resté un moment dubitatif devant ma sortie écran que j'affichais en debug et où je printais mes if et je voyais : "toto eq toto", donc à l'écran tout paraissait normal !
Je me dis que ce problème viens peut être du fichier d'origine qui n'est pas un fichier xml pur mais un fichier qui y ressemble fortement avec des balises comme il faut et tout et tout mais qui doit cacher ces caractères bizarres (c'est un fichier obtenu par une machine qui crache un rapport sous cette forme et que je voulais parser avec le DOM Parser).
Quel utilitaire ou commande je peux utiliser pour "forcer" à voir ces caractères échappés ?
Merci !
Partager