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 de hash


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
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut tableau hash de hash
    Bonjour,

    j'ai un message d'erreur que je ne comprend pas:
    Pseudo-hashes are deprecated at cahier.pl line xx, <xxx> line xxx.
    No such pseudo-hash field "a" at cahier.pl line xx, <INTERM> line xxx.



    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
    18
    19
    20
    21
    my %hash;
    open (INTERM, "<xxxx") or die("Impossible d'écrire xxx$!");
    while( my $line=<INTERM>){
    if($line =~ /(.*)\tTest\tnege\t([0-9]+)\t([0-9]+)\t(.*)\t(.*)\t(.*)\t(.*) (.*) ; (.*) (.*)$/){
    	my $id=$8;
    	$hash{$id}{'ge'} =$line;
        }
    elsif($line =~ (.*)\tTest\t(.*)\t([0-9]+)\t([0-9]+)\t(.*)\t(.*)\t(.*)\t(.*) (.*) ; (.*) (.*)$/){
    	my $id=$9;
    	my $nb = { 'deb' => $3, 'ligne' => $line};
    	push @{$hash{$id}{'ex'}}, $nb;
        }
    }
    my ($id,$structure);
    my @tab;
     
    while ( ($id, $structure) = each (%hash) ) {
     
    //le problème vient de cette ligne mais!!
    @tab = (sort { $hash{$id}{'ex'}{a}{'deb'} <=> $hash{$id}{'ex'}{b}{'deb'} } @{$hash{$id}{'ex'}});
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut
    j'ai un tableau de hash de hash ce type et j'aimerais le trier suivant 'deb' et afficher 'ligne'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $VAR1 = {
              'ex' => [
                             {
                               'deb' => '68',
                               'ligne' => 'aaa'
                             },
                             {
                               'deb' => '70',
                               'ligne' => 'bb'
                             },
     ],
    };
    ce que je traduit comme ceçi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ( ($id, $structure) = each (%hash) ) {
    @tab = (sort { $hash{$id}{'ex'}{a}{'deb'} <=> $hash{$id}{'ex'}{b}{'deb'} } @{$hash{$id}{'ex'}});
    }

    commet je peux faire le tri?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut
    le problème venait du tri:
    while ( ($id, $structure) = each (%hash) ) {
    @tab = ( sort { $a->{'deb'} <=> $b->{'deb'} } @{$hash{$id}{'ex'}} );

    }

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

Discussions similaires

  1. Trier un tableau contenant des hash
    Par kioka dans le forum Langage
    Réponses: 18
    Dernier message: 30/04/2009, 17h28
  2. tableau comme valeur dans un hash de hash
    Par king_kunu dans le forum Langage
    Réponses: 2
    Dernier message: 02/01/2006, 17h05
  3. Génération d'une hash de hash de tableau
    Par antigone dans le forum Langage
    Réponses: 3
    Dernier message: 01/09/2005, 20h18
  4. Tableau de hash to hash
    Par shwin dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2005, 15h17
  5. Parcours d'un hash de hash de hash
    Par ngere dans le forum Langage
    Réponses: 5
    Dernier message: 06/07/2005, 10h53

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