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 :

Tableau [HASH] perl


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 16
    Points : 12
    Points
    12
    Par défaut Tableau [HASH] perl
    Bonjour, je suis désolé je ne cesse d'envoyer des messages sur le forum, je ais vous expliquer mon probléme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    #!usr/perl/bin
    use strict;
    use warnings;
     
    my %jeremy=('numero'=>'01535626764');
    my %tony=('numero'=>'0143913430');
    my %jack=('numero'=>'0163646748');
    my %yohan=('numero'=>'0174374839');
    print "cmd:";
    my $a=<STDIN>;
    chomp($a);
    foreach $a(....)
    {
    	print $a;
    }
    Donc voila, j'aimerai que au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($a eq "jeremy"){}
    j'aimerai m'exercer en foreach() mais je ne vois pas comment creer la boucle qui parcours les listes, donc le programme pour moi consiste : Si dans cmd: la l'utilisateur entre par exemple jeremy, je veux que automatiquement que tous ce qui se trouvent dans le tableau jeremy s'affiche, mais je ne vois pas trop comment

    Merci beacoup de votre aide.

  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
    Ton problème est un problème de conception : tu utilises des variables là où tu devrais utiliser un hash :
    Code Perl : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #!usr/perl/bin
    use strict;
    use warnings;
     
    my %persons = (jeremy => {'numero'=>'01535626764'},
      tony => {'numero'=>'0143913430'},
      jack => {'numero'=>'0163646748'},
      yohan => {'numero'=>'0174374839'},
    );
     
    print "Personne choisie : ";
    my $guess = <STDIN>;
    chomp($guess);
    if( exists $persons{$guess} ) {
      my %temp = %{$persons{$guess}};
      foreach my $k ( keys %temp) {
        print "$k : $temp{$k}\n";
      }
    }
     
    __END__

    Néanmoins ce code utilise un certain nombre de concepts avancé (en particulier les références), consulte notre FAQ, ainsi que la documentation puis reviens nous poser des questions si tu en as encore.

    --
    Jedaï

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    AAA oui c'est vrai le code rentre un peu dans la complexité (pour moi) je vais analyser de plus prés le code; Merci pour le lien
    A bientot

  4. #4
    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
    Par ailleurs, s'il n'y a qu'une seule information par personne (comme ici, juste le numéro), un hash simple suffit :
    Code Perl : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #!usr/perl/bin
    use strict;
    use warnings;
     
    my %numeros = (jeremy => '01535626764',
      tony => '0143913430',
      jack => '0163646748',
      yohan => '0174374839',
    );
     
    print "Personne choisie : ";
    my $guess = <STDIN>;
    chomp($guess);
    if( exists $numeros{$guess} ) {
      print "Numéro de $guess : $numeros{$guess}\n";
    }
     
    __END__

    --
    Jedaï

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    AA ue c'est bien comme ça j'ai les deux scripts qui pourront m'aider merci.

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

Discussions similaires

  1. Generation de tableau en perl
    Par WindRider_ dans le forum Langage
    Réponses: 2
    Dernier message: 30/10/2009, 14h16
  2. Récupération de la taille d'un tableau en perl
    Par Info_76 dans le forum Langage
    Réponses: 1
    Dernier message: 31/03/2008, 15h21
  3. Récupérer la taille d'un tableau en perl
    Par Info_76 dans le forum Langage
    Réponses: 3
    Dernier message: 20/03/2008, 14h47
  4. tableau en PERL
    Par marinette dans le forum Langage
    Réponses: 16
    Dernier message: 04/07/2005, 16h17

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