< < PerlFR > >
E-Nef | Art Roman | Voyager | Cartes ()
dragon

   PerlFR :
   Perl en Français dans le texte

Plan du Site
Contact
my.perlfr v0.1
 


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-2008 Emmanuel PIERRE. Libre reproduction sous Licence LLDDv1.
Pour tout commentaire, webmaster at perlfr.org
Dernière MaJ

Valid XHTML 1.0!

No Patents/