On Wed, 10 Aug 2016, Victor Porton wrote:
Moose roles have some limitations, such as inability to override a
method in a class which "with"es the role.
But I can use an abstract base class instead of a role.
Are there any real situations where roles are better than base classes?
With examples, please.
I was going to suggest augment'ing a method in a Role, which I'd been planning
to explore as a way of declaring interfaces and standard parameter/type checks
in Classes, while consuming Roles for the implementation, but alas:
"Roles cannot support 'augment' at ..."
This is false. For example:
Not sure how your example applies here Karen, there is no foo() declared in
MyClass only a foo method modifier, and MyRole's foo() doesn't appear to be
executed from your output?
package MyClass;
use Moose;
with 'MyRole';
around foo => sub {
'I came from the class';
};
say $obj->foo;
# prints: I came from the class
--
Niall Young
ni...@iinet.net.au