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 :

probleme de href de arrays


Sujet :

Langage Perl

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut probleme de href de arrays
    bonjour,

    apres avoir lu perlreftut et perldsc, j'arrive pas à m'en sortir :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    sub triage{
    		    my ($mots,$termes,$valeursMots)=@_;#$mots est un arrayref, $termes est un href qui va contenir des arrays et valeursMots est un hashref
    		    foreach my $mot(@$mots){#pour chaque mot du arrayref mots
    			my $present = -1;
    			my @k = (sort keys %$termes); #termes est un hashref qui contiendra des arrays, chaque key est le nom d'un tableau
    			if(@k>0){#si %$termes non vide
    			    foreach my $terme(sort keys %$termes){#pour chaque mot on compare aux keys du hashref termes
    				if($mot eq $terme){ #si le mot = la clé
    				    if(exists($valeursMots->{$mot})) {# si le hashref contient déjà une clé $mot			  
    					$valeursMots->{$mot}+=1;#on ajoute la paire ($mot=>1) au hashref valeursMots au hashref
    				    }
    				    else{
    					$valeursMots->{$mot}=1;#on ajoute la paire ($mot=>1) au hashref valeursMots au hashref
    				    }
     
    				    foreach my $mot2(@$mots){#on construit l'arbre du cluster présent
    					if($mot2 ne $mot){
    					    push @{ $termes{$mot} }, $mot2;#$mot est un array contenu dans le hashref termes
    					}
    				    }
    				    $present = 1;
    				    warn "present";
    				}
     
    				unless($present == 1){
    				    foreach my $mot2(@$mots){#on construit l'arbre du cluster absent
    					my @tab;
    					if($mot2 ne $mot){
    					     my $motPresent2 = -1;
    					    foreach my $mot5 ($termes->{$mot}){# on parcourt le array $mot
    						if($mot2 eq $mot5){# si mot2 est présent dans le tableau
    						    $motPresent2 = 1;#on met le marqueur à 1
    						}
    					    }
     
    					    if ($motPresent2 == -1){#si mot2 etait absent
    						push @{ $termes{$mot} }, $mot2;# on ajoute $mot2 au array mot contenu dans le hashref termes
    					    }
     
    					}
    					push @{ $termes{$mot} }, $mot2;# on ajoute 
     
    				    }
    				    warn "absent";
    				}
     
    			    }
     
     
    			}
    			else{
    				    %{$termes->{$mot}}= ();
    				    foreach my $mot2(@$mots){#on construit l'arbre du cluster présent
    					if($mot2 ne $mot){
    					    my $motPresent = -1;
    					    foreach my $mot4(@%{$termes->{$mot}}){# on parcourt le array $mot
    						if($mot2 eq $mot4){
    						    $motPresent = 1;
    						}
    					    }
    					    if ($motPresent == -1){
    						push @{ $termes{$mot} }, $mot2;# on ajoute $mot2 au array mot contenu dans le hashref termes
    					    }
    					}
    				    }
    				warn "premier déjà construit";
    			}
     
    		    }
    		    croak( Dumper(\@mots, \%termes, \%valeursMots));
     
    		}
    ça me retourne du vide :/ si une ame charitable veut bien m'aider, j'apprecierais

  2. #2
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Bonjour,

    Au départ, ton tableau %termes est vide non? C'est confus, j'ai du mal à comprendre toutes tes boucles. Ce tableau va contenir comme clé chacun des mots de @$mots et comme array associé toutes les autres valeurs de @$mots?
    Si c'est bien cela, tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
             map{$termes{$_}=()}@$mots;
             foreach my $key (keys %termes)
             {
                @{$termes{$key}} = grep{$key ne $_} @$mots;
             }
    Pourrais-tu expliquer en quelques phrases ce que ton script doit faire?

    Merci,


    Jasmine,

Discussions similaires

  1. [MySQL] probleme avec un fetch array
    Par Kuchiki Byakuya dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 10/03/2010, 13h37
  2. probleme cannot allocate an array of constant size 0
    Par sebintokyo dans le forum C++
    Réponses: 2
    Dernier message: 26/06/2009, 07h27
  3. probleme avec mysql fetch array
    Par philsand77 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 19/04/2007, 07h56
  4. probleme de pointeur ? return array
    Par Funraill.net dans le forum C
    Réponses: 23
    Dernier message: 05/06/2006, 16h52
  5. Probleme de type avec Array
    Par BECHE dans le forum Langage
    Réponses: 5
    Dernier message: 30/03/2006, 23h05

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