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 :

Hachage contenant une liste


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut Hachage contenant une liste
    Bonjour,

    J'ai un hachage dans lequel une clé correspond à une liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    my %all;
     
    push %all{$TEST_NAME}, $TOT_RES;
    push %all{$TEST_NAME}, $RET_VAL;
    push %all{$TEST_NAME}, $STD_ERR;
    push %all{$TEST_NAME}, $STD_OUT;
    push %all{$TEST_NAME}, $TEST_DESC;
    J'obtiens cette erreure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    syntax error at ./checker.pl line 285, near "%all{"
    Ce qui correspond au tout premier push. Je subodore un probleme d'initialisation mais même si c'est le cas je ne vois pas bien comment y remédier.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Par défaut
    ce que tu cherche à faire (si j'ai bien compris), c'est ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    my %all;
    $all{$TEST_NAME} = [];
    push @{$all{$TEST_NAME}}, $TOT_RES;
    push @{$all{$TEST_NAME}}, $RET_VAL;
    ...
    ou, plus simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    my %all;
    $all{$TEST_NAME} = [$TOT_RES, $RET_VAL, $STD_ERR, $STD_OUT, $TEST_DESC];
    ce qu'il faut garder en tete c'est qu'une valeur de hash ne pourra pas etre autre chose qu'un scalar. Donc si l'on veut mettre un array dans un hash il faut le faire sous forme de scalar, reference de array

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut
    Merci de la réponse !

    J'ai cependant un problème.
    Maintenant que les données sont dans le hachage.

    est il correct de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    while (($clef, @list) = each %all)
        {
            print "Test name                      : $clef\n";
            print "Details                           : $list[0]\n";
            print "Comparison of stdout        : $list[1]\n";
            print "Comparison of stderr         : $list[2]\n";
            print "Comparison of return value : $list[3] should be \n";
            print "Result                             : $list[4]\n";
        }
    J'ai en effet comme résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    [lucifer]/u/a1/varlet_s/SVN/42sh/de-gor_f-42sh/check > ./checker.pl -e Builtins -n                   [Last Exit: KO]
    Test name                  : lol2
    Details                    : ARRAY(0x8137528)
    Comparison of stdout       :
    Comparison of stderr       :
    Comparison of return value :  should be 0
    Result                     :
    1 successful tests on 3 tests
    Apres utilisation de Dumper j'ai :

    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
    17
     
    $VAR1 = 'lol2';
    $VAR1 = [
              '# pouet
    ',
              'KO',
              'KO',
              'KO',
              'OK'
            ];
    Test name                  : lol2
    Details                    : ARRAY(0x818c600)
    Comparison of stdout       :
    Comparison of stderr       :
    Comparison of return value :  should be 0
    Result                     :
    1 successful tests on 3 tests

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut
    Ok j ai trouvé en fait, @list devait etre declaré en $list et ensuite j ai fait des $list->[x] pour acceder aux elements.

    Merci de ton aide en tout cas !

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

Discussions similaires

  1. <logic:iterate> d'une Hashmap contenant une liste
    Par kenshiroseifu dans le forum Struts 1
    Réponses: 3
    Dernier message: 20/04/2009, 18h09
  2. Retour de fonction contenant une "liste" - Conventions ?
    Par Jimalexp dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 26/01/2009, 14h08
  3. Ajout de Node a partir d'objet contenant une liste d'objet
    Par Al_Bundy dans le forum Windows Forms
    Réponses: 4
    Dernier message: 05/08/2008, 14h35
  4. Réponses: 2
    Dernier message: 29/05/2008, 15h59
  5. Popup contenant une liste sélectionnable
    Par virgul dans le forum ASP.NET
    Réponses: 8
    Dernier message: 15/02/2007, 10h34

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