Bonjour,
je précise de suite que je débute en Perl. J'ai suivi le tuto POO de François Lieuze sur la POO en perl. Très sympa ça donne envie de s'y mettre.
Dans ce tuto il y a un exemple où l'on crée une classe Personne avec quelques méthodes pour :
- créer une personne (nom, prénom, âge, frères)
- la faire parler (message)
- compter le nombre de personnes
J'ai bien sûr voulu faire quelques modifs. et ajouts pour me faire la main. Notamment j'ai créé une méthode identite qui doit m'afficher les infos de la personne. Je pose ici les deux méthodes intéressantes :
Comme vous pouvez le voir je parcours le tableau frere de la ligne 30 à 32. J'avais essayé de le parcourir normalement
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 package Personne; use strict; use warnings; #constructeur sub new { my ( $classe, $nom, $prenom, $age, @frere ) = @_; #on passe les données au constructeur my $self = { "nom" => $nom, "prenom" => $prenom, "age" => $age, "frere" => [ "Simon", "Jacques" ] }; $self->{"frere"} = \@frere if @frere; bless( $self, $classe ); #lie la référence à la classe $nb++; print "Il y a maintenant $nb presonne(s)\n"; return $self; #on retourne la référence consacrée } sub identite { my $self = shift; print "Nom : $self->{nom}\n" ; print "Prénom : $self->{prenom}\n" ; print "Âge : $self->{age}\n" ; print "Frère(s) : \n"; foreach (0..20) { print "\t $self->{frere}[$_] \n" if ( defined $self->{frere}[$_] ); } print "\n"; }
Mais ça ne marche pas. Ça me renvoie ARRAY(0x1cdef48).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 foreach $frere ( $self{frere} ) { print "$frere \n"; }
J'ai ensuite chercher comment trouver le nombre d'élément de ce tableau. Je n'ai pas trouvé. Je me suis donc rabattu sur ce code, en supposant que dans ce cas précis une personne aurait 21 frères au plus (ce qui est déjà pas mal).
Comment parcourir ce tableau sans en connaître le nombres d'élément ?
Merci.
Partager