Bonjour tout le monde,
Je suis en train d'essayé de voir comment fonctionne le perl en objet.
Je me suis donc créé deux fichiers:
Un "Personne.pm
et un "Test_PERL.pl"
Cependant, quand j'execut mon script sur eclipse, voila ce que je reçois comme retour:
Mon array s'affiche mal.$VAR1 = bless( {
'prenom' => 'Dupont',
'nom' => 'Pierre',
'frere' => [
'paul',
'jack'
],
'age' => 30
}, 'Personne' );
Pierre a dit : "Hello world!"
prenom => Dupont
nom => Pierre
frere => ARRAY(0x187ae8c)
age => 30
J'aurai 2 questions:
Comment afficher correctement mon array?
Et est-ce que ce code vous parait etre fait dans les regles de l'art de la Poo perl car je vais m'inspirer de cet exemple pour touts mes travaux a venir.
Merci,
Cordialement,
Benjamin
Voic mes codes:
Personne.pm:
Et Test_PERL.pl:
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 package Personne; use strict; my $nb = 0; #variable de classe sub constpers { # on passe les données au constructeur my ( $classe, $nom, $prenom, $age, @frere ) = @_; my $this = { "nom" => $nom, "prenom" => $prenom, "age" => $age, "frere" => [ "Simon", "Jacques" ] }; $this->{"frere"} = \@frere if @frere; #lie la référence à la classe bless( $this, $classe ); #on retourne la référence consacrée return $this; } sub parler #méthode d'instance { my ( $this, $parole ) = @_; print "$this->{nom} a dit : \"$parole\"\n"; } sub afficher { my ($this) = @_; foreach(keys(%$this)) { print "$_ => $$this{$_}\n"; } } 1; #Attention ! Obligatoire lors de la création d'un module !
Encore merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #!/usr/bin/perl -w use strict; use Data::Dumper; use Personne; my $pers = Personne->constpers("Pierre", "Dupont", 30, "paul", "jack"); print Dumper($pers) . "\n"; $pers->parler("Hello world!"); $pers->afficher();![]()
Partager