On 19 October 2013 09:55, Karen Etheridge <p...@froods.org> wrote:

> I don't think a top level interface is generally appropriate for these
> sorts of things
>

Indeed, not everything that exports is called Exporter::<*>

Exporter:: is instead mostly filled with modules for the purpose of
exporting, not simply because they export.

Just with roles there's a lot of vague ways interfaces can exist and be
named, so anything other than Role::  seems like namespace pollution.

ie:  Role::HasMessage becoming simply "HasMessage" seems like a step
backward to me, its just there's no better name for it.

There's literally no other behavioural context to go on than the "HasMessage"
property, as although this module may be used for exceptions predominantly,
nothing about the roles behaviour indicates that it is exception-only, so
"exception" being a namespace token just makes people overlook it.

So in a nutshell:

*Where it is possible and logical to do so, use some prefix relevant to the
problem your module is suited for.    ( ie: Foo::Role::Blah ,
Blahinterface role for
Foo )

*
*Where otherwise, a Role::  prefix is preferred over no prefix at all. *


-- 
Kent

Reply via email to