IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Chercher un élément dans une liste


Sujet :

Langage Perl

  1. #1
    Membre habitué Avatar de johnkro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 276
    Points : 187
    Points
    187
    Par défaut Chercher un élément dans une liste
    Bonjour tout le monde,

    j'aimerais savoir s'il existe une fonction perl me permettant de savoir si un élément est présent dans une liste.

    @liste = ("pusr","pnice","kbmemused");
    $var_recherche = "pusr";

    Comment savoir si $var_recherche est bien dans @liste? sans faire de for ou foreach, je voudrais une fonction qui me renvoie un boolean.

    Merci d'avance

  2. #2
    Membre actif Avatar de CKLN00
    Homme Profil pro
    Bioinformaticien Java/Perl
    Inscrit en
    Avril 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Bioinformaticien Java/Perl
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 210
    Points : 263
    Points
    263
    Par défaut
    tu n'as pas poster au bon endroit
    lire la faq ça aide
    pour répondre à ta question je pense que grep() est ce qu'il te faut
    (cf le lien vers la faq )

  3. #3
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    grep() est effectivement fréquemment utilisé pour cet usage. Mais first() de List::Utils (module dans le CORE) est plus efficace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "$elem est dans la liste \@list\n" if first {$elem eq $_} @list;
    --
    Jedaï

  4. #4
    Membre actif Avatar de CKLN00
    Homme Profil pro
    Bioinformaticien Java/Perl
    Inscrit en
    Avril 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Bioinformaticien Java/Perl
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 210
    Points : 263
    Points
    263
    Par défaut
    oui mais (si je dit pas de bêtise) first ne ressortiras qu'un seul élément
    (ce qui semble être suffisant pour ce cas) alors que grep sortiras tout les élément correspondant, il me semble .

  5. #5
    Membre habitué Avatar de johnkro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 276
    Points : 187
    Points
    187
    Par défaut
    Can't call method "first" without a package or object reference at test.pl line 26.
    Il faut ajouter quel package?

  6. #6
    Membre actif Avatar de CKLN00
    Homme Profil pro
    Bioinformaticien Java/Perl
    Inscrit en
    Avril 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Bioinformaticien Java/Perl
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 210
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par Jedai Voir le message
    grep() est effectivement fréquemment utilisé pour cet usage. Mais first() de List::Utils
    un petit
    au début de ton script devrai suffire

  7. #7
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par CKLN00 Voir le message
    oui mais (si je dit pas de bêtise) first ne ressortiras qu'un seul élément
    (ce qui semble être suffisant pour ce cas) alors que grep sortiras tout les élément correspondant, il me semble .
    Oui mais ici on cherche juste à déterminer si un élément est présent dans la liste, pas s'il y en a plusieurs exemplaire (en tout cas ce n'était pas la question posée), first sera plus rapide en cas de succès car elle s'arrêtera dès qu'elle a trouvé l'élément, contrairement à grep.

    --
    Jedaï

  8. #8
    Membre habitué Avatar de johnkro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 276
    Points : 187
    Points
    187
    Par défaut
    Can't locate List/Utils.pm in @INC (@INC contains: /usr/lib/perl5/5.6.1/i686-linux /usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1/i686-linux /usr/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/site_perl .) at test.pl line 2.
    BEGIN failed--compilation aborted at test.pl line 2.
    Euh petit soucil avec le "use List::Utils ;"

  9. #9
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 93
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par johnkro Voir le message
    @liste = ("pusr","pnice","kbmemused");
    $var_recherche = "pusr";
    if(grep(/$var/, @liste)){
    print "$var est dans la liste;
    }

    Je pense que c'est plus simple à utilisé mais bon ...

  10. #10
    Membre actif Avatar de CKLN00
    Homme Profil pro
    Bioinformaticien Java/Perl
    Inscrit en
    Avril 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Bioinformaticien Java/Perl
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 210
    Points : 263
    Points
    263
    Par défaut
    autant pour moi c'est pas Utils mais Util donc :

  11. #11
    Membre habitué Avatar de johnkro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 276
    Points : 187
    Points
    187
    Par défaut
    meme erreur sans le s à Util, je vais donc utiliser la commande grep

    merci a vs 2

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. position d'un élément dans une liste
    Par john491 dans le forum Général Python
    Réponses: 8
    Dernier message: 05/05/2006, 13h13
  2. [VBA] sélection d'un élément dans une liste
    Par menguygw dans le forum Access
    Réponses: 3
    Dernier message: 26/04/2006, 12h18
  3. Sélectionner un élément dans une liste multiple
    Par sourivore dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/03/2006, 11h47
  4. [debutant] insertion d'éléments dans une List
    Par gwenou60 dans le forum Composants
    Réponses: 1
    Dernier message: 05/12/2005, 09h59
  5. contrôler l'absence d'un élément dans une liste donnée
    Par gendalf37 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 12/09/2005, 10h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo