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 :

table de hashage


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 9
    Points : 5
    Points
    5
    Par défaut table de hashage
    Bonjour, à tous alors mon but final serait de pouvoir ajouté plusieurs valeurs pour une même clé de ma table de hachage:

    je part d'un document que j'ouvre que je lit, et pour chaque clé que je trouve,
    je voudrait associé une ou plusieurs valeurs à cette même clé

    j'ai voulu faire de cette manière, voici une partie de mon code :

    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
     
    #!/usr/bin/perl -w
     
    use Getopt::Std;
    getopts "d:o:";
    my @data_seq =();
    my %db_final =();
    my @loc_os =();
     
     
    if(!defined $opt_d or !defined $opt_o)
    {
    	die "
                    toto
    	\n";
    }
     
    my $output = $opt_o;
    open(DESIGN,"$opt_d");
    while(<DESIGN>){
    	chomp;
    	@data_seq = split(/\t/,$_);  #je récupère uniquement les clé
     
    	@loc_os = split(/,/,$data_seq[1]); # je récupère les différentes valeur
     
    	$db_final{$data_seq[0]}= \@loc_os;
    	print "$db_final{$data_seq[0]} \n";
    exit;
    le problème est , quand j'affiche pour vérifié la première entrée, il ne m'affiche pas du tout les valeurs contenurs dans l'array loc_os,
    mais plutot un message de ce type :
    comment doit-je procéder ?
    le fichier que je cherche à traiter est organisé sous la forme :

    clé (tabulation)--> valeur1, valeur2
    ...

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Points : 712
    Points
    712
    Par défaut
    Perso, quand j'ai des doutes sur la structure de donnée que j'ai créé, j'utilise Data:umper.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    use Data::Dumper;
    print Dumper($db_final);
    Ca me montre comme c'est structuré.
    Dans ton cas, je trouve cela dis assez normal que tu obtiennes que $db_final{$data_seq[0]} est une référence sur un tableau, puisque c'est exactement ce que tu lui dis la ligne d'avant.

    Si tu veux traiter le tableau lui même, il s'écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @{$db_final{$data_seq[0]}}

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/05/2007, 16h13
  2. Comparaison table de hashage
    Par aikinhdo dans le forum Langage
    Réponses: 3
    Dernier message: 11/04/2007, 17h23
  3. Problème de pointeur sur une table de hashage
    Par nicdesf dans le forum Langage
    Réponses: 3
    Dernier message: 07/09/2006, 19h23
  4. Table de hashage
    Par ByBoN dans le forum C
    Réponses: 5
    Dernier message: 04/06/2006, 17h06
  5. [VB6] table de hashage
    Par Cirdan Telemnar dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 23/05/2006, 14h15

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