Hi.<br><br>Módulos criados com <i>bless</i> possuem um modelo diferente dos módulos que utilizam o Moose, certo?<br>Na verdade não sei, mas era o que eu achava até então.<br><br>Sempre achei que sendo diferentes, pra utilizarmos herança, o modelo do <i>package</i> seria incompatível um com o outro, e pra isso eu utilizava o módulo MouseX::NonMoose.<br>
<br>Eis que fuçando um pouco o módulo Badger::Log::File, experimentei testar os <i>method modifiers</i> pra jogar a saída também pro STDERR:<br><pre style="color:rgb(0,0,0);font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px">
extends 'Badger::Log::File';<br><br>after qw {
info
debug
warn
fatal
error
} => sub {
say STDERR $_[1];
};</pre>Eis que fui ver a lista de deps do Badger::Log::File, e é gigante... Só que <b>sem</b> o Moose! Logo, pensei que isso não funcionaria mas funciona!<br><br>Pra ilustrar melhor a situação:<br><pre style="color:rgb(0,0,0);font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px">
package Fvox;
use common::sense;
sub new {
bless {}, shift;
}
sub execute {
my $self = shift;
say 'Do...';
}<br><br>1;
package Junior;
use Moose;
extends 'Fvox';
after 'execute' => sub {
say STDERR 'It works?!';
};<br><br>1;
my $fx = new Junior();
$fx->execute();</pre><br><br><br>Alguém pode falar mais sobre objetos Moose vs NonMoose?<br>Quais as incompatibilidades que eu poderia enfrentar, se isso não funcionava numas versões anteriores, etc?<br clear="all"><br>
-- <br><pre style="color:rgb(0,0,0);font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-auto;text-indent:0px;text-transform:none;word-spacing:0px"> ______________________
< Junior "fvox" Moraes >
----------------------
\
\
.--.
|o_o |
|:_/ |
// \ \
(| | )
/'\_ _/`\
\___)=(___/</pre><br>