OVH Cloud OVH Cloud

test des input

13 réponses
Avatar
Alexandre Jaquet
hello,

J aimerais bien savoir pourquoi lorsque j utilise :

my $user_name = $query->param ('user_name') =~ /^([\w.])$/;

la donnée retourné n'est pas valable mais si j utilise

my $user_name = $query->param ('user_name');
$user_name =~ /^([\w.])$/; c est ok

d'avance merci

3 réponses

1 2
Avatar
Jérémy JUST
On Sun, 17 Jul 2005 14:51:27 +0200
"Jul" wrote:

Histoire de compléter ci-dessus, m/.../ renvoi 1 si l'expression
régulière s'applique à la chaîne testée, 0 si elle ne peut s'exécuter.


Un peu mieux formulé: elle renvoie une valeur vraie (pas forcément 1)
si le motif s'applique à la chaîne, une valeur fausse sinon.

Et « si [la regexp] ne peut s'exécuter », la portion de code la
contenant ne compile tout simplement pas (et c'est un « eval »
éventuel qui renverra faux).


--
Jérémy JUST

Avatar
Nicolas George
"Jul" wrote in message :
Histoire de compléter ci-dessus, m/.../ renvoi 1 si l'expression
régulière s'applique à la chaîne testée, 0 si elle ne peut s'exécuter.
Elle n'est utile que dans le cas d'une instruction conditionnelle


Ce n'est pas tout à fait vrai : en contexte de liste, elle retourne les
chaînes capturées :

my ($host, $port) = $option =~ /^(S+)(?::(d+))?Z/;

par exemple, est tout à fait sensé.

Avatar
Jul
Nicolas George a pensé très fort :
"Jul" wrote in message :
Histoire de compléter ci-dessus, m/.../ renvoi 1 si l'expression
régulière s'applique à la chaîne testée, 0 si elle ne peut s'exécuter.
Elle n'est utile que dans le cas d'une instruction conditionnelle


Ce n'est pas tout à fait vrai : en contexte de liste, elle retourne les
chaînes capturées :

my ($host, $port) = $option =~ /^(S+)(?::(d+))?Z/;

par exemple, est tout à fait sensé.


C'est vrai que j'y suis allé un peu fort :o)
C'est la *mauvaise* habitude de lire 1 = résultat et 0 = undef, avec le
moteur de rx qui renvoit dont un résultat ou non (mais ne travaillant
en aucun cas sur la chaine soumise)

Désolé de ce manque de conscience.

--
Jul... réapparru comme par enchantement


1 2