[PERL] remplissage de table de hachage

Fermé
cyrine - 26 sept. 2012 à 12:55
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 26 sept. 2012 à 13:52
Bonjour,

Je cherche comment faire pour remplir une table de hachahe d'elements extraints à partir d'un texte
voilà mon petit bout de code qui cré une table de hachage en l'initialisant, et qui extrait les element du texte à stocker dans la table de hachage
Merci pour votre aide

#!/usr/bin/perl 
use strict;
use warnings;
my %h = ();
my $InFile = "/home/cyrine/restri";
open my $fh_infile, '<', $InFile or die "Can't open $InFile\n";
 
while ( my $Ligne = <$fh_infile> ) {
  if ( $Ligne =~ /^(.*?)\->/ ) {
    # traiter $substring
    print $1; 
    # inserer le contenu de $1 dans la table de hachage
 
  }     
}
close $fh_infile;


2 réponses

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié par [Dal] le 26/09/2012 à 13:57
Salt cyrine,

L'usage normal des tables de hachage Perl est d'associer une clef à une valeur.

Par exemple :

my %h = ();      
$h{"toto"} = "chic type";      
$h{"titi"} = "gros canari jaune";

Or, dans ton code, tu ne semble vouloir conserver qu'une seule donnée par itération de ta boucle, et non une paire de données associées.

Si le but de ton utilisation de la table est juste de savoir si cet élément est présent, tu peux te contenter de créer des entrées avec les clefs, en laissant les valeurs correspondantes vides. Alors, dans ta boucle, tu mettras :

$h{$1}="";

En faisant cela, tu pourras vérifier l'existence d'une entrée dans la table, en vérifiant si la clef existe :

if (exists( $h{"titi"})) {      
    print "La clef 'titi' existe\n";      
}

énumérer les clefs, les classer, etc.

Si ce n'est pas ce que tu veux faire, explique toi un peu mieux, stp.


Dal
1
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
26 sept. 2012 à 12:59
http://www.commentcamarche.net/forum/affich-26146339-remplissage-de-table-de-hachage-perl
0