Bonjour,

J'ai écrit un petit programme permettant de savoir si une chaine de caractère donné contient bien exactement 10 chiffres.

Le problème, c'est que quand il y a plus de 10 chiffres, le programme m'affiche vrai alors que je voudrais obtenir faux.

Ce que j'obtiens en sortie :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
num = 06457852
 
il y a 8 nombres dans cette chaine
 
faux
 
num = 0645785278
 
il y a 10 nombres dans cette chaine
 
vrai
 
num = 064578527806
 
il y a 12 nombres dans cette chaine
 
vrai


Le programme est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
sub parse_chaine
 
{
 
            my @tab = @_;
 
 
 
            foreach my $nb(@tab)
 
            {
 
                        print "num = ".$nb."\n";
 
                        print "il y a ".length($nb)." nombres dans cette chaine\n";
 
 
 
                        if($nb =~ m/\d{10}/)
 
                        {
 
                                   print "vrai\n";
 
                        }
 
                        else
 
                        {
 
                                   print "faux\n";
 
                        }
 
            }
 
}
 
 
 
parse_chaine("06457852","0645785278","064578527806");
Merci