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:
$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
Mon array s'affiche mal.
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:
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 !
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
#!/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();
Encore merci