in reply to attribute collisions ín Moose

First, a disclaimer: I am only speaking for my own experience, and could be totally wrong.

What I would do is use Moose's attribute extension capabilities. So, to sublclass Hubba with Bubba redefining the attribute hubba, I'd probably do:

package Bubba; use Moose; extends 'Hubba'; has '+hubba' => ( is => 'rw', isa => 'Str', builder => 'hubba_builder2', ); sub hubba_builder2 {...}
Of course, you'd have to know beforehand that Hubba has the attribute hubba. In my experience, this has always been the case; I always know the parent class' API before subclassing.