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 :

recherche chaine dans tableau


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 86
    Points : 52
    Points
    52
    Par défaut recherche chaine dans tableau
    bonjour, je débute en perl et j'ai une petite question...

    j'ai un scalaire (une chaine de caracteres) et un tableau.
    pour savoir si mon scalaire existe dans le tableau, j'ai fait une fonction qui compare le scalaire à chaque éléments du tableau...
    mais n'existe t'il pas une fonction equivalente en perl ?
    un fonction qui renvoie oui ou non (ou 0 ou 1) si le scalaire existe ou non dans le tableau ?
    un genre de inarray en php...

    merci d'avance pour vos réponses.

  2. #2
    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
    Si tu n'as aucune information a priori sur le tableau (est-il trié ?), tu n'as aucun autre moyen que la recherche linéaire pour vérifier si un élément s'y trouve. Dans ce cas il n'existe aucune fonction Perl prédéfinie, généralement on utilise quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    use List::Utils qw(first);
     
    sub in_list {
      my $elem = shift;
      return defined( first {$elem eq $_} @_);
    }
     
    print "Hello is in the list" if in_list "hello", ("hello", "world");
    Mais si tu as souvent besoin de faire ça, c'est peut-être que tu utilises des listes là où tu devrais plutôt utiliser des hashs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "Hello is in the set" if exists $hash{hello};
    --
    Jedaï

Discussions similaires

  1. Réponses: 20
    Dernier message: 09/07/2008, 12h41
  2. Recherche chaine dans une liste
    Par Clorish dans le forum Général Java
    Réponses: 7
    Dernier message: 28/03/2008, 11h49
  3. Recherche valeurs dans tableau par Vlookup
    Par fabibou dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 22/08/2007, 11h51
  4. Recherche chaine dans un fichier
    Par matt8-5 dans le forum Langage
    Réponses: 2
    Dernier message: 02/11/2006, 16h07
  5. recherche lignes dans tableau excel
    Par BODIGUEL dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/05/2006, 19h08

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