Ovid wrote:
At the BBC, we never encounter this because semantically different methods are
renamed and semantically identical methods are refactored (aliasing and
excluding being code smells). However, if roles start making their way on to
the CPAN, you won't necessarily have control over the source code, forcing you
to fork or simply not use the role in question. Regrettably, that defeats the
purpose of roles -- namely, to facilitate code reuse.
Taking this idea further. If roles make their way to CPAN, and code
reuse becomes practical, aliasing and excluding are no longer code
smells, but appropriate ways of filtering what is wanted from generic code.