[PERL] remplissage de table de hachage

cyrine -  
[Dal] Messages postés 6373 Statut Contributeur -
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;


A voir également:

2 réponses

[Dal] Messages postés 6373 Statut Contributeur 1 106
 
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 8930 Statut Membre 1 781
 
http://www.commentcamarche.net/forum/affich-26146339-remplissage-de-table-de-hachage-perl
0