Front page | perl.moose |
Postings from July 2008
Extends type questions
Thread Next
From:
Christopher Brown
Date:
July 2, 2008 17:22
Subject:
Extends type questions
Hi All,
What is the best way to moosify an existing CPAN class and all the classes
called by this class. I know that *extends* works:
package MooseX::Module::A;
use Moose;
extends 'Module::A';
package MooseX::Module::B;
use Moose;
extends 'Module::B';
sub my_b_extension {
...
}
But how do you extend both modules when Module::A relies on and calls
Module::B? Such as.
package Module::A;.
sub create_b {
my $self = shift;
$self->{b} = Module::B->new();
}
...
Now in:
package main;
use MooseX::Module::A;
use MooseX::Module::B;
my $a = Moose::X::Module::A->new(); # Cool
$a->create_b; # Cool
$a->{b}->my_b_extension(); # FAIL!
In this scenario, I will not see *my_b_extension*. In normal, non-Moose
Perl, I would:
package Module::AX;
use *base* 'Module::A';
...
package Module::BX;
use *base* 'Module::B';
...
Thanks in Advance,
Chris
Thread Next
-
Extends type questions
by Christopher Brown