Bonjour, débutant en Perl et trifouillant un simple programme répertoire, je voudrais que chaque entrée puisse avoir plusieurs n° de téléphone.
La forme du tableau :
Pour remplir ce @repertoire j'utilise le fichier repertoire, de la forme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 @repertoire [ { prenom => prénom nom => nom tels => [tel1,tels2 ] } ]
Voici le code que j'ai écris :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Éric#Dumont#1111111111#2222222222# Marcelle#Amelac#3333333333# Syvain#Boyer#4444444444#5555555555#6666666666# Colette#Masson#7777777777#
J'utilise Smart::Comments, sorte de Data:
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 #!/usr/bin/env perl use strict; use warnings; use diagnostics; use Smart::Comments; use Data::Dumper; use feature ":5.24"; my $repertoire = "repertoire"; # fichier my @repertoire ; # le repertoire (array de hash) my ($nom, $prenom, $tel); # variables temporaires my @tels; # liste de n° de téléphone sub ouvrir_repertoire { if (-e $repertoire) { open my $REP, "<", "$repertoire" or die "Impossible de lire $repertoire : $!"; while (<$REP>) { chomp; say; ($nom, $prenom, @tels) = split(/#/); ### nom: $nom ### prenom: $prenom ### tel: @tels push (@repertoire,{ 'prenom' => $prenom, 'nom' => $nom, 'tels' => \@tels }); } ### @repertoire close $REP; } else { # ajouter_entree(); # si le fichier n'existe pas creer repertoire } return; } ouvrir_repertoire;umper en plus simple, pour visualiser le contenu de mes variables et voici ce que j'obtiens :
Je ne comprends pas. Dans un premier temps le fichier est bien lu et les variables bien affectées. Mais le remplissage de @repertoire avec les téléphones foire. Le seul n° qui peuple le tableau c'est le dernier du fichier et pas au bon endroit.
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 ### nom: 'Éric' ### prenom: 'Dumont' ### tel: [ ### '1111111111', ### '2222222222' ### ] ### nom: 'Marcelle' ### prenom: 'Amelac' ### tel: [ ### '3333333333' ### ] ### nom: 'Syvain' ### prenom: 'Boyer' ### tel: [ ### '4444444444', ### '5555555555', ### '6666666666' ### ] ### nom: 'Colette' ### prenom: 'Masson' ### tel: [ ### '7777777777' ### ] ### @repertoire: [ ### { ### nom => 'Éric', ### prenom => 'Dumont', ### tels => [ ### '7777777777' ### ] ### }, ### { ### nom => 'Marcelle', ### prenom => 'Amelac', ### tels => $VAR1->[0][0]{tels} ### }, ### { ### nom => 'Syvain', ### prenom => 'Boyer', ### tels => $VAR1->[0][0]{tels} ### }, ### { ### nom => 'Colette', ### prenom => 'Masson', ### tels => $VAR1->[0][0]{tels} ### } ### ]
Merci pour votre coup de main.
Partager