Bonjour, Bonjour
J'ai un soucis au niveau des arguments d'une fonction dans mon programme. Les arguments sont un fichier, entrée en ligne de commande et une table de hashage, qui est déjà pré-remplie (2ème fonction).
Sur le terminal il m'est affiché :
"Reference found where even-sized list expected at ./programme.pl line 16."
Soit il m'est indiqué que le $file2 dans ma 2e fonction n'est pas trouvé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ### MAIN ### use Data:: Dumper qw(Dumper); $file1 = ARGV[0]; $file2 = ARGV[1]; my %hash; %hash = hash_remplissage($file1); enriched_hash(\%hash, $file2); print Dumper \%hash; print "___________\n";Comment fait-on pour utiliser plusieurs arguments dont un fichier et un hash ? Le hash pose le plus de problème. Sûrement dû aux références et aux pointeurs. Mais je n'arrive pas bien à cerner où cela beugue
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 ### FUNCTIONS ### sub hash_remplissage { <div style="margin-left:40px">my ($file1) = @_; my %hash; open FICHIER1, $file1; while(<FICHIER1>) { <div style="margin-left:40px">... remplissage du hash vide ...</div> } close FICHIER1; return \%hash;</div>} sub enriched_hash { <div style="margin-left:40px">my (%hash) = shift(); my ($file2) = shift(@_); open (FICHIER2, $file2) or die "Can't open '$file2': $!"; while(<FICHIER2>) { <div style="margin-left:40px">... ajout éléments dans hash ...</div> } close FICHIER2;</div>} ### END ###
Merci par avance à celui ou celle qui m'aidera à comprendre et résoudre mon problème
Partager