La programmation orientée objet en Perl

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search
Perl

Software version 5.10
Operating System
Website Perl Website
Last Update 13/10/2012
Others

1 Introduction

La Programmation Orientée Objet (qu'on notera POO) est un concept possédant de nombreuses vertus universellement reconnues à ce jour. C'est une méthode de programmation qui permet d'améliorer le développement et la maintenance d'applications, de logiciels avec un gain de temps non négligeable. Il est important de garder à l'esprit qu'elle ne renie pas la programmation structurée (ou procédurale) puisqu'elle est fondée sur elle. L'approche classique pour introduire la POO dans un langage existant est de passer par une encapsulation des fonctionnalités existantes. Le langage C++ s'est construit sur le C et a apporté la POO. Le langage JAVA est fondé sur la syntaxe du C++. Perl a également suivi le pas en proposant des extensions pour donner la possibilité à ses fans de pouvoir utiliser ce paradigme de programmation. Néanmoins, Perl étant permissif, il n'est pas aussi strict que des langages "pur objet". Mais c'est normal, car la philosophie de Perl est maintenue, "there is more than one way to do it" (TIMTOWTDI).

Je me suis fortement inspiré de ce tutoriel[1], mais n'en utiliserais qu'une partie pour une utilisation rapide. Si vous souhaitez une version plus condensée qui nécessite néanmoins de bonnes bases, il y a celui ci[2].

2 Exemple simple

Nous allons commencer avec un exemple simple comprenant un module (car c'est obligatoire) et nous allons voir comment lui envoyer des informations :

Configuration File Personne.pm
# Nom du package, de notre classe
package Personne;
# Avertissement des messages d'erreurs
use warnings;
# Vérification des déclarations
use strict;
 
sub new {
  my ( $classe, $ref_arguments ) = @_;
 
  # Vérifions la classe
  $classe = ref($classe) || $classe;
 
  # Création de la référence anonyme d'un hachage vide (futur objet)
  my $this = {};
 
  # Liaison de l'objet à la classe
  bless( $this, $classe );
 
  $this->{_NOM}          = $ref_arguments->{nom};
  $this->{_PRENOM}       = $ref_arguments->{prenom};
  $this->{AGE}           = $ref_arguments->{age};
  $this->{_SEXE}         = $ref_arguments->{sexe};
  $this->{NOMBRE_ENFANT} = $ref_arguments->{nombre_enfant};
 
  return $this;
}
 
# Méthode marcher - ne prend aucun argument
sub marcher {
  my $this = shift;
 
  print "[$this->{_NOM} $this->{_PRENOM}] marche\n";
 
  return;
}
 
1;                # Important, à ne pas oublier
__END__           # Le compilateur ne lira pas les lignes après elle

Et ensuite vous avez votre programme principale :

Configuration File soft.pl
#!/usr/bin/perl
use warnings;
use strict;
 
use Personne;
 
my $Objet_Personne1 = Personne->new(
  { nom           => 'Dupont',
    prenom        => 'Jean',
    age           => 45,
    sexe          => 'M',
    nombre_enfant => 3,
  }
);

3 References

  1. ^ http://djibril.developpez.com/tutoriels/perl/poo/
  2. ^ http://woufeil.developpez.com/tutoriels/perl/poo/