Un peu de PERL ...
Résolu
ollie314
Messages postés
145
Date d'inscription
Statut
Membre
Dernière intervention
-
ollie314 Messages postés 145 Date d'inscription Statut Membre Dernière intervention -
ollie314 Messages postés 145 Date d'inscription Statut Membre Dernière intervention -
Bonjour ...
Je suis en train de faire un petit programme qui test si un email est valide. Je fais ç via des expression regulière ( motifs). Mais je debute en PERL et manifestement ça se voit :0). Voici le programme.
#!/usr/bin/perl
sub bon_email
{
if($_==([a-zA-Z0-9\-_\.]{1,}@[a-zA-Z0-9\-_\.]{1,}\.[a-zA-Z]{2,}(.)*)
{
#on retourne 1 si le mail est valide
return 1;
}
else
{
#0 sinon
return 0;
}
}#fin de la fonction
print "saisissez votre email\n";
$mail=<STDIN>;
chomp($mail);
$res=bon_email($mail);
if ($res==1)
{
print"email_ok";
}
else
{
print "email non valide";
}
voilà à la compilation, l'expression régulière ne passe pas
je pense également que la fonction est mal formatée.
Quelqun peut-il m'aider ??
Merci d'avance....
Ollie314
Je suis en train de faire un petit programme qui test si un email est valide. Je fais ç via des expression regulière ( motifs). Mais je debute en PERL et manifestement ça se voit :0). Voici le programme.
#!/usr/bin/perl
sub bon_email
{
if($_==([a-zA-Z0-9\-_\.]{1,}@[a-zA-Z0-9\-_\.]{1,}\.[a-zA-Z]{2,}(.)*)
{
#on retourne 1 si le mail est valide
return 1;
}
else
{
#0 sinon
return 0;
}
}#fin de la fonction
print "saisissez votre email\n";
$mail=<STDIN>;
chomp($mail);
$res=bon_email($mail);
if ($res==1)
{
print"email_ok";
}
else
{
print "email non valide";
}
voilà à la compilation, l'expression régulière ne passe pas
je pense également que la fonction est mal formatée.
Quelqun peut-il m'aider ??
Merci d'avance....
Ollie314
A voir également:
- Un peu de PERL ...
- Denon perl pro test - Accueil - Audio
- Active perl - Télécharger - Édition & Programmation
- DzSoft Perl Editor - Télécharger - Édition & Programmation
- Comment lire un fichier .pl perl ? - Forum Windows
- Perl: transformer un fichier en package ✓ - Forum Perl
1 réponse
Bonsoir,
Oui, il y a plusieurs fautes de parenthèses déjà.
En outre les critères de recherche s'écrivent comme ceci:
if ($_ =~ m/^a/) { }
par exemple.
Pour récupérer le premier argument d'une fonction, on utilise $_[0], le second $_[1], le troisième $_[2], et ainsi de suite.
Voici ton programme corrigé:
sub bon_email { if($_[0]=~m/[a-zA-Z0-9\-_\.]{1,}@[a-zA-Z0-9\-_\.]{1,}\.[a-zA-Z]{2,}(.)*/){
#on retourne 1 si le mail est valide
return 1;
}
else {
#0 sinon
return 0;
}
}#fin de la fonction
print "saisissez votre email\n";
$mail=<STDIN>;
chomp($mail);
$res=bon_email($mail);
if ($res==1)
{
print"email_ok\n";
}
else
{
print "email non valide\n";
}
@+
Oui, il y a plusieurs fautes de parenthèses déjà.
En outre les critères de recherche s'écrivent comme ceci:
if ($_ =~ m/^a/) { }
par exemple.
Pour récupérer le premier argument d'une fonction, on utilise $_[0], le second $_[1], le troisième $_[2], et ainsi de suite.
Voici ton programme corrigé:
sub bon_email { if($_[0]=~m/[a-zA-Z0-9\-_\.]{1,}@[a-zA-Z0-9\-_\.]{1,}\.[a-zA-Z]{2,}(.)*/){
#on retourne 1 si le mail est valide
return 1;
}
else {
#0 sinon
return 0;
}
}#fin de la fonction
print "saisissez votre email\n";
$mail=<STDIN>;
chomp($mail);
$res=bon_email($mail);
if ($res==1)
{
print"email_ok\n";
}
else
{
print "email non valide\n";
}
@+
Merci beaucoup pour le coup de main tout marche c'est nikel !!!
@+