> Retour au Perl et XML - Maitrise Tal 2002 <


PROGRAMMATION OBJET PERL

 

La programmation objet permet de créer des classes d'objets ou packages auxqelles on aplique des procédures nommées méthodes.On associés à un objet (réference) des champs à modifier

 

Création d'un programme testcheval.pl  sur l'exemple du code patient.pl

 

 

------------------------------>Programme objet cheval.pm

 

 

#!/bin/perl

package cheval;                                                                  # déclaration d'un package

 

sub new {                                                                            # new : construction de l'objet

my ($class, $nom, $race, $age, $sexe, $etat, $unite)=@_;    # création d'un tableau à 7 objets

my $cheval={};                                                                    # appel objet cheval

$cheval->{nom}=$nom;                                                       # objet cheval contient respectivement : nom, race,

$cheval->{race}=$race;                                                       #...age, sexe,etat...

$cheval->{age}=$age;

$cheval->{sexe}=$sexe;

$cheval->{etat}=$etat;

 

if ($unite) {

$cheval->{unite}=$unite;

} else {

$cheval->{unite}='Non definie';

}

return bless $cheval;                                                                  # bless rend visible l'objet de l'exterieur

}

 

sub BEGIN {

    print " \n \n               LISTE DES CHEVAUX DE M. STACHURA\n              ----------------------------------\n    \n";

}

 

sub END {

    print "\n \n- Pour tout renseignement, veuillez contacter M. Stachura - Avril 2002 - >-] \n\n";

}

 

sub transfert {                                                                            # transfert vers de nouvelle unité

    my ($cheval, $nvunite)=@_;

    $cheval->{unite}=$nvunite;

print "\n\t> le cheval $cheval->{nom} a ete transfere dans l'unite $cheval->{unite}\n";

}

 

sub sante {

    my ($cheval, $nvetat)=@_;

    $cheval->{etat}=$nvetat;

print "\t\t* son etat est $cheval->{etat}\n";

}

 

sub affiche {                                                                          # affiche la situation du patient

my ($cheval)=@_;

print "__ le cheval $cheval->{nom} d'origine $cheval->{race} de sexe $cheval->{sexe} et age de $cheval->{age} ans\n est actuellement soigne en $cheval->{unite}\n";

}

 

sub DESTROY {                                                                  # DESTORY- destructeur, appel à la destruction

my ($cheval)=@_;

print "- le cheval $cheval->{nom} est au repos, notre equipe prends soin de lui\n";

}

1;                                                                                          # une classe objet se termine par 1;

 

 

 

 

_

 

Programme testcheval.pl utilise la classe d'objet et fait appel aux méthode defini dans programme.pm

 

#!/bin/perl

use cheval;                                  #directive pour dire qu'on utilise le package cheval

 

$cheval1 = new cheval('KASANDRA', 'Andalouse','2','F','grave','urgence');            # passage en argument

# d' informations sur le cheval à la methode new definie dans le programme cheval.pm  

$cheval2 = new cheval('ULTIMO','Andalouse','15','M','douteux','urgence'); 

$cheval3 = new cheval('SHAMAZAR','Arabe','5','M','favorable','regime');  

$cheval4 = new cheval('KOMBINADO','Espagnole','2','M','imprevisible','psycho');

$cheval5 = new cheval('DESPADIDA','Espagnole','4','F','endormi','reveil');

$cheval6 = new cheval('KALIF','Arabe','5','M','agite','psycho');

$cheval7 = new cheval('SEDUCTOR','Espagnole','4','M','exite','psycho');

 

$cheval1->affiche;

$cheval2->affiche;

$cheval3->affiche;

$cheval4->affiche;

$cheval5->affiche;

$cheval6->affiche;

$cheval7->affiche;

 

$cheval1->transfert('repos');

$cheval1->sante('stable');                     # dans cheval.pm

$cheval2->transfert('retraite');

$cheval2->sante('fragile');

$cheval1->affiche;

$cheval2->affiche;

 

 

------------------------------------------------->Résultat sous MS-DOS

 

C:\Perloo>perl -c testCheval.pl

 

 

               LISTE DES CHEVAUX DE M. STACHURA

              ------------------------------------------------------------

 

testCheval.pl syntax OK

 

C:\Perloo>

 

 


> Retour au Perl et XML - Maitrise Tal 2002 <