in reply to perl writing tips needed

In addition to roles, you may also want to take a look at Class::Virtual as a way of building virtual base classes. Between the two, roles and virtual classes should give you plenty to think of.