To partially answer my own question, it appears that if I use "with" once
for each role it works fine, for example:
{
package SJQ::Baz;
use Moo;
with 'SJQ::Role::Foo';
with 'SJQ::Role::Bar';
use namespace::clean;
}
I'm still not clear on why that is necessary though.
On 19 August 2015 at 16:03, Stephen Quinney <[email protected]> wrote:
> I have a problem with using MooX::HandlesVia for attributes in roles when
> I consume more than one role in a class. I get:
>
> "Due to a method name conflict between roles 'SJQ::Role::Bar and
> SJQ::Role::Foo', the method 'has' must be implemented by 'SJQ::Baz' at
> /usr/share/perl5/vendor_perl/Role/Tiny.pm line 215."
>
> I can't see what I'm doing wrong here, any suggestions?
>
> Here's an example:
>
> {
> package SJQ::Role::Foo;
> use Moo::Role;
> use MooX::HandlesVia;
> }
>
> {
> package SJQ::Role::Bar;
> use Moo::Role;
> use MooX::HandlesVia;
> }
>
> {
> package SJQ::Baz;
> use Moo;
>
> with 'SJQ::Role::Foo','SJQ::Role::Bar';
>
> use namespace::clean;
> }
>
> my $test = SJQ::Baz->new();
>
>
>
>