Bonjour j'ai un tu bout cd code qui me sert a faire des statistique des mots présent dans un document , je souhaite que le programme me renvoie tout sa dans un hash ce que j'ai réussie a faire sauf qu'il renvoie les données avant que tout les enregisteement n'est été fait
disont que j'ai la phrase "la maison en carton" il vas renvoyé le hash
au lieu de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 %test = ( la => [ $mot, $occurence, $dentiste ] );
voici mon code de test
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 %test = ( la => [ $mot, $occurence, $dentiste ], maion => [ $mot, $occurence, $dentiste ], en => [ $mot, $occurence, $dentiste ] ... );
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 #!/usr/bin/perl -w $i = "ma maison en carton carton maison"; %m = statistiques($i); foreach $key(keys %m) { print "$m{$key}[0]\n"; print "$m{$key}[1]\n"; print "$m{$key}[2]\n"; } sub statistiques { my $code = shift; my @html = split/\s/, $code; my %occurence = &calc_occur(\@html); foreach my $word(keys(%occurence)) { my $densite = ($occurence{$word}*100)/$#html+1; my %stat = (); push @{ $stat{"$word"} }, "$word", "$occurence{$word}", "$densite"; return %stat } } sub calc_occur() { my %occur = (); my $tablo = $_[0]; foreach my $word (@$tablo){ if (! $occur{$word}){ $occur{$word} = 1; } else { $occur{$word}++; } } return %occur; }
merci de votre aide
Partager