[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