J'ai ce bout de code :
my $email =3D "email@domain.com";
print $email."\n";
Et il m'affiche "email.com", le @domain est consid=E9r=E9 comme =E9tant un
tableau je pense.
Comment je peux m'en sortir avec ce genre de bout de code, en =E9vitant
de devoir modifier la variable $email. (parrce que j'avais
=E9ventuellement song=E9 =E0 faire un substiture =3D~ s/@/\@/).
Dans quelle doc trouver des infos sur la gestion de cela ?
Oui, cela fonctionne avec des simple quotes, mais le soucis est que ma varaiable $email est initialisée depuis un fichier XML ;
En fait, j'ai un fichier XML : <datas> <email></email> </datas> J'utilise XML::Simple avec XMLin pour récupérer mon xml sous forme de hash : je n'ai donc pas moyen de lui dire de mettre des simple quotes !?
NB : Y'a pas une histoire de trantypage ?
On 9 fév, 15:16, "ThM" <thibaudmonf...@yahoo.fr> wrote:
my $email = "e...@domain.com";
essayez 'em...@domaine.com';
Oui, cela fonctionne avec des simple quotes, mais le soucis est que ma
varaiable $email est initialisée depuis un fichier XML ;
En fait, j'ai un fichier XML :
<datas>
<email>email@domain.com</email>
</datas>
J'utilise XML::Simple avec XMLin pour récupérer mon xml sous forme de
hash : je n'ai donc pas moyen de lui dire de mettre des simple
quotes !?
Oui, cela fonctionne avec des simple quotes, mais le soucis est que ma varaiable $email est initialisée depuis un fichier XML ;
En fait, j'ai un fichier XML : <datas> <email></email> </datas> J'utilise XML::Simple avec XMLin pour récupérer mon xml sous forme de hash : je n'ai donc pas moyen de lui dire de mettre des simple quotes !?
NB : Y'a pas une histoire de trantypage ?
Paul Gaborit
À (at) 9 Feb 2007 06:14:08 -0800, "Math" écrivait (wrote):
Une petite difficultée, pour ne pas changer...
J'ai ce bout de code : my $email = ""; print $email."n";
Et il m'affiche "email.com", le @domain est considéré comme étant un tableau je pense.
Tout à fait. Il suffit donc de bloquer le mécanisme d'interpolation des variables. Deux manières :
my $email = "";
ou
my $email = '';
[... un autre message où il semble que le contenu de $email provient de la lecture d'un fichier (XML mais ça ne change rien)...]
L'interpolation dea variables dans les chaînes n'a lieu que lors de l'interprétation du code : celui qui est lu directement dans un script (le cas ci-dessus), lors d'un appel à 'eval' ou alors dans une structure du genre s/.../.../e (c'est le /e est important). En tous cas, cette interpolation des variables n'a pas lieu sur ce qui est lu depuis les fichiers de donnée (sauf à la demander explicitement).
Vous devez donc faire une fausse manip entre la lecture des données depuis le fichier XML et le moment où ces données arrivent dans votre variable...
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) 9 Feb 2007 06:14:08 -0800,
"Math" <mathieu.lory@gmail.com> écrivait (wrote):
Une petite difficultée, pour ne pas changer...
J'ai ce bout de code :
my $email = "email@domain.com";
print $email."n";
Et il m'affiche "email.com", le @domain est considéré comme étant un
tableau je pense.
Tout à fait. Il suffit donc de bloquer le mécanisme d'interpolation
des variables. Deux manières :
my $email = "email@domain.com";
ou
my $email = 'email@domain.com';
[... un autre message où il semble que le contenu de $email provient
de la lecture d'un fichier (XML mais ça ne change rien)...]
L'interpolation dea variables dans les chaînes n'a lieu que lors de
l'interprétation du code : celui qui est lu directement dans un script
(le cas ci-dessus), lors d'un appel à 'eval' ou alors dans une
structure du genre s/.../.../e (c'est le /e est important). En tous
cas, cette interpolation des variables n'a pas lieu sur ce qui est lu
depuis les fichiers de donnée (sauf à la demander explicitement).
Vous devez donc faire une fausse manip entre la lecture des données
depuis le fichier XML et le moment où ces données arrivent dans votre
variable...
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) 9 Feb 2007 06:14:08 -0800, "Math" écrivait (wrote):
Une petite difficultée, pour ne pas changer...
J'ai ce bout de code : my $email = ""; print $email."n";
Et il m'affiche "email.com", le @domain est considéré comme étant un tableau je pense.
Tout à fait. Il suffit donc de bloquer le mécanisme d'interpolation des variables. Deux manières :
my $email = "";
ou
my $email = '';
[... un autre message où il semble que le contenu de $email provient de la lecture d'un fichier (XML mais ça ne change rien)...]
L'interpolation dea variables dans les chaînes n'a lieu que lors de l'interprétation du code : celui qui est lu directement dans un script (le cas ci-dessus), lors d'un appel à 'eval' ou alors dans une structure du genre s/.../.../e (c'est le /e est important). En tous cas, cette interpolation des variables n'a pas lieu sur ce qui est lu depuis les fichiers de donnée (sauf à la demander explicitement).
Vous devez donc faire une fausse manip entre la lecture des données depuis le fichier XML et le moment où ces données arrivent dans votre variable...
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
Alex Marandon
Math wrote:
On 9 fév, 15:16, "ThM" wrote:
my $email = ""; essayez '';
Oui, cela fonctionne avec des simple quotes, mais le soucis est que ma varaiable $email est initialisée depuis un fichier XML ;
En fait, j'ai un fichier XML : <datas> <email></email> </datas> J'utilise XML::Simple avec XMLin pour récupérer mon xml sous forme de hash : je n'ai donc pas moyen de lui dire de mettre des simple quotes !?
Étrange, chez moi XML::Simple met bien des simples quotes :
$VAR1 = { 'email' => '' };
C'est ce que me donne le script suivant :
use XML::Simple; use Data::Dumper;
print Dumper XMLin(<<'END'); <datas> <email></email> </datas> END
__END__
NB : Y'a pas une histoire de trantypage ?
C'est quoi ? C'est quand les variables changent de sexe ?-)
Math wrote:
On 9 fév, 15:16, "ThM" <thibaudmonf...@yahoo.fr> wrote:
my $email = "e...@domain.com";
essayez 'em...@domaine.com';
Oui, cela fonctionne avec des simple quotes, mais le soucis est que ma
varaiable $email est initialisée depuis un fichier XML ;
En fait, j'ai un fichier XML :
<datas>
<email>email@domain.com</email>
</datas>
J'utilise XML::Simple avec XMLin pour récupérer mon xml sous forme de
hash : je n'ai donc pas moyen de lui dire de mettre des simple
quotes !?
Étrange, chez moi XML::Simple met bien des simples quotes :
$VAR1 = {
'email' => 'email@domain.com'
};
C'est ce que me donne le script suivant :
use XML::Simple;
use Data::Dumper;
print Dumper XMLin(<<'END');
<datas>
<email>email@domain.com</email>
</datas>
END
__END__
NB : Y'a pas une histoire de trantypage ?
C'est quoi ? C'est quand les variables changent de sexe ?-)
Oui, cela fonctionne avec des simple quotes, mais le soucis est que ma varaiable $email est initialisée depuis un fichier XML ;
En fait, j'ai un fichier XML : <datas> <email></email> </datas> J'utilise XML::Simple avec XMLin pour récupérer mon xml sous forme de hash : je n'ai donc pas moyen de lui dire de mettre des simple quotes !?
Étrange, chez moi XML::Simple met bien des simples quotes :
$VAR1 = { 'email' => '' };
C'est ce que me donne le script suivant :
use XML::Simple; use Data::Dumper;
print Dumper XMLin(<<'END'); <datas> <email></email> </datas> END
__END__
NB : Y'a pas une histoire de trantypage ?
C'est quoi ? C'est quand les variables changent de sexe ?-)
Paul Gaborit
À (at) Thu, 01 Mar 2007 07:42:59 GMT, Alex Marandon écrivait (wrote): [...]
Étrange, chez moi XML::Simple met bien des simples quotes :
$VAR1 = { 'email' => '' };
Là, ce n'est pas XML::Simple qui met les apostrophes. C'est Data::Dumper.
Le choix entre apostrophes ou guillemets n'a de sens que lorsqu'on écrit une chaîne de caractères dans un script. Si la chaîne provient d'ailleurs (lecture d'un fichier, par le réseau, etc.), la question ne se pose plus : il n'y a pas d'interpolation des variables ou des caractères spéciaux sauf demande explicite du programmeur (par exemple via un appel à 'eval').
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Thu, 01 Mar 2007 07:42:59 GMT,
Alex Marandon <al@invalid.org> écrivait (wrote):
[...]
Étrange, chez moi XML::Simple met bien des simples quotes :
$VAR1 = {
'email' => 'email@domain.com'
};
Là, ce n'est pas XML::Simple qui met les apostrophes. C'est
Data::Dumper.
Le choix entre apostrophes ou guillemets n'a de sens que lorsqu'on
écrit une chaîne de caractères dans un script. Si la chaîne provient
d'ailleurs (lecture d'un fichier, par le réseau, etc.), la question ne
se pose plus : il n'y a pas d'interpolation des variables ou des
caractères spéciaux sauf demande explicite du programmeur (par exemple
via un appel à 'eval').
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Thu, 01 Mar 2007 07:42:59 GMT, Alex Marandon écrivait (wrote): [...]
Étrange, chez moi XML::Simple met bien des simples quotes :
$VAR1 = { 'email' => '' };
Là, ce n'est pas XML::Simple qui met les apostrophes. C'est Data::Dumper.
Le choix entre apostrophes ou guillemets n'a de sens que lorsqu'on écrit une chaîne de caractères dans un script. Si la chaîne provient d'ailleurs (lecture d'un fichier, par le réseau, etc.), la question ne se pose plus : il n'y a pas d'interpolation des variables ou des caractères spéciaux sauf demande explicite du programmeur (par exemple via un appel à 'eval').
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>