[Rio-pm] importando métodos?

breno breno em rio.pm.org
Quinta Novembro 6 16:57:07 PST 2008


2008/11/6 Eden Cardim <edencardim em gmail.com>:
>
> Perl faz a resolução de métodos inexistentes na classe atual
> automaticamente pra você através do sistema de herança, usa
> Module::Pluggable pra carregar os plugins e Class::C3::Componentized
> pra "anexar" os plugins à sua classe, depois é só invocar os métodos
> dos plugins no seu objeto e voilá. E dá uma olhada no
> MooseX::Object::Pluggable também.
>

Boa! Vale lembrar que podemos usar o pragma "mro" para ativar o
comportamento  C3 direto do core no 5.10 :-)

Aliás, como o Eden falou, a melhor e talvez mais simples maneira de se
fazer isso é com herança múltipla, não? Algo como:

-------------------8<-------------------
package Bla;
sub bla { print "bla\n" }

package Ble;
sub ble { print "ble\n" }

package Blu;
use base qw{Bla Ble};

sub new { bless {}, (shift) }
sub blu { print "blu\n" }

package main;

my $obj = Blu->new();
$obj->bla();
$obj->ble();
$obj->blu();
-------------------8<-------------------

Lembrando que herança múltipla deve ser usada com cuidado!

[]s

-b


Mais detalhes sobre a lista de discussão Rio-pm