[perl] oo

Je doute que quelqu’un puisse m’aider, mais peut-être qu’il y a un dieu du Perl cacher dans la salle au fond à droite, sait-on jamais B) .

Le perl n’est pas très apprécié sur la zone (surement à juste raison), mais je n’ai pas choisi ce langage même si je l’apprécie aujourd’hui, et si on y met un peu de volonté, on peut développer très proprement en Orienté Objet.

Ma question vient de l’utilisation de deux bibliothèqes totalement indépendantes qui me donne de drôles de résultats mises ensemble :

  • Perl-Unit (un JUnit like pour Perl)
  • Attribute::Property qui permet de simplifier l’écriture OO

Pour expliquer, Attribute::Property permet de déclarer des classes sous cette forme là :

[codebox]

package PMagFramework::PUnit::TestInsertFailedListener;

use strict;
use warnings;

require Test::Unit::TestCase ;
@PMagFramework::PUnit::TestInsertFailedListener::ISA = (‘Test::Unit::TestCase’);

MARCHE PO :

use base qw(Test::Unit::TestCase);

use Attribute::Property;
use Carp;

sub new {
my $self = shift()->SUPER::new(@_);
# your state for fixture here
return $self;
}

sub set_up {
# provide fixture
}

sub tear_down {
# clean up after test
}

sub test_foo {
my $self = shift;
$self->assert(! defined($self->myprop));
}

sub myprop : Property;

1;
[/codebox]