[PERL] Test appartenance a liste
Fermé
Qwerti
Messages postés
166
Date d'inscription
dimanche 2 septembre 2007
Statut
Membre
Dernière intervention
28 octobre 2008
-
15 juil. 2008 à 01:53
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 13 mars 2009 à 08:47
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 13 mars 2009 à 08:47
A voir également:
- [PERL] Test appartenance a liste
- Test performance pc - Guide
- Liste déroulante excel - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Test composant pc - Guide
- Test steam deck oled - Guide
2 réponses
Salut !
Il y a une méthode simple pour faire cela : une expression régulière.
Il suffit de savoir que l'expression "@tab" correspond à la concaténation des éléments de @tab.
On peut alors écrire :
$val="Valeur a chercher";
if ( "@tab" =~ /$val/) {
print "la valeur est dans le tableau\n";
} else {
print "la valeur n'est PAS dans le tableau\n";
}
voila !
:-)
Il y a une méthode simple pour faire cela : une expression régulière.
Il suffit de savoir que l'expression "@tab" correspond à la concaténation des éléments de @tab.
On peut alors écrire :
$val="Valeur a chercher";
if ( "@tab" =~ /$val/) {
print "la valeur est dans le tableau\n";
} else {
print "la valeur n'est PAS dans le tableau\n";
}
voila !
:-)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
13 mars 2009 à 08:20
13 mars 2009 à 08:20
Salut,
D'autres possibilités
D'autres possibilités
lami20j@debian:~/trash$ cat ccm_grep.pl #!/usr/bin/perl #use strict;use warnings; my @t = ( 'element 1', 'element 2', 'element 3'); print "\@t = @t\n"; print "\n","*" x 20,"\n\n"; # affiche seulement les éléments trouvés my @cherche = grep{ /element\s*[24]/ } @t; print "Trouvés : @cherche\n"; # ligne de séparation print "\n","*" x 20,"\n\n"; # affiche les éléments trouvés et non trouvés for my $e('element 2', 'element 4'){ if (grep { /$e/ } @t){ print "$e trouvé\n"; }else{ print "$e non trouvé\n"; } } lami20j@debian:~/trash$ perl ccm_grep.pl @t = element 1 element 2 element 3 ******************** Trouvés : element 2 ******************** element 2 trouvé element 4 non trouvé
13 mars 2009 à 08:47
"@tab" correspond à la concaténation des éléments de @tab
Pas tout à fait.
L'interpolation de @t donne la liste des éléments séparés par un espace (ce n'est pas une concaténation)
Un exemple Pour traiter les éléments d'une liste on utilise en général foreach ou for.
D'autres fonction qui peuvent être utiliser : grep, map, join, pack, sort, pop, push, shift, unshift, splice