< < E-NEF > >
Prog. Perl | Art Roman | Voyager | Cartes ()
                  dragon                     e-nef                 Plan du Site
Contact
my.e-nef v0.1
  • Kernel Linux stable: 2.6
  • Perl: 5.8
  • Apache: 2.0
  • mod_perl: 2.0
  • postgres: 8.0


Rubriques


Recherche sur le Site





Bookmarks


Recommandation de Lecture


Questions ?
Dites nous ce que vous
avez pensé de cette page

 Excellent
 Vaut le coup de le lire
 Sans intérêt

 Pas assez technique
 Juste comme il faut
 Trop technique



Cours de Perl
next up previous index
suivant: Utilisation des options de monter: Tips and tricks précédent: Les here-documents   Index

Comment savoir si une valeur est dans une liste ?

Ceci constitue une action fréquemment rencontrée lors de l'écriture de scripts. La solution dépendra de la taille de la liste.

Une première solution est de parcourir le tableau et de tester chaque valeur successivement :


$in = 0;
for $val (@liste)
{
  if ($item eq $val)
  {
    $in = 1;
    last;
  }
}
On peut également utiliser la fonction grep qui effectue un test sur tout un tableau, et renvoie l'ensemble des éléments du tableau qui ont validé le test :


@elements = grep($_ eq $item, @liste);

Enfin, et c'est la méthode la plus rapide, mais à n'utiliser que sur des listes de taille raisonnable, on peut utiliser un tableau associatif et tester si la valeur recherchée est une clé du tableau :


for $cle (@liste)
{
  $hash{$cle} = 1;
}
# ce qui peut s'ecrire de maniere moins lisible (mais plus
# courte a taper...) :
# %hash = map( ($_, 1), @liste )

if (defined($hash{$item}))
{
  $in = 1;
}


Olivier Aubert
1999-06-01



Publicité

© Copyright 1998-2010 Emmanuel PIERRE. Libre reproduction sous Licence LLDDv1.
Pour tout commentaire, webmaster@e-nef.com
Dernière MaJ

Valid XHTML 1.0!

No Patents/