Bonjour à tous,
je débute en PERL et j'ai un problème avec une expression régulière, malgré la documentation, je ne comprends pas bien comment ça marche :
Alors en fait, dans un fichier CSV, j'ai une liste complète d'oiseaux. Ce que j'ai fait pour le moment, c'est donc ouvrir le fichier, parcourir le fichier pour insérer chaque nom d'oiseau dans une liste, trier la liste, mettre chaque élément de la liste dans une liste déroulante, et l'afficher.
Maintenant, j'essaye de reprendre ce principe pour n'afficher que les oiseaux commençant par une certaine lettre, donc je reparcours ma liste d'oiseaux, et si ça commence par une certaine lettre, j'insère la valeur dans une seconde liste, je construis ma liste déroulante et je l'affiche.
Le problème c'est que je n'arrive pas à bien gérer mon expression régulière.
J'ai mis ça en condition :
qui me retourne bien tous les oiseaux commençant par la lettre a ou la lettre A
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ($birds[$i] =~/^[aA]/)
mais si j'essaye avec la lettre suivante, b, et que je mets donc
, là j'ai les A et les B ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ($birds[$i] =~/^[bB]/)
, là j'ai aussi que les A et les B ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ($birds[$i] =~/^[cC]/)
donc je ne vois pas ce qui cloche
voici mes qq lignes de mon script :
Merci à tous ceux qui pourront me dépanner
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 #!/usr/bin/perl print "Content-type: text/html\n\n"; open (FICHIER,"liste.csv") or print("Le fichier n'existe pas !"); @birds = (); my $form; while ($ligne = <FICHIER>){ chomp($ligne); push (@birds,$ligne); } @birds=sort(@birds); close FICHIER; my $longueur = @birds; for($i=0;$i<$longueur;$i++) { $form=$form."<option value='@birds[$i]'>@birds[$i]</option>"; } $listfinale="<form method='post'><select name='birds'>" .$form."</select></form>"; print $listfinale; @birdsspec=(); $form=""; for($i=0;$i<$longueur;$i++) { if ($birds[$i] =~^[\aA]/) { push(@birdsspec,$birds[$i]); } } my $longueur = @birdsspec; for($i=0;$i<$longueur;$i++) { $form=$form."<option value='@birds[$i]'>@birds[$i]</option>"; } $listfinale=""; $listfinale="<form method='post'><select name='birds'>" .$form."</select></form>"; print $listfinale;
Slyv
Partager