suivant: Utilisation des options de
monter: Tips and tricks
précédent: Les here-documents
  Index
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
|