in reply to Conditional inheritance strategy
Basically this looks good. Here's a few thoughts and suggestions:
- Your if-elsif has no else. In this case, handling missing or unknown source (as alluded to by bart) would be appropriate.
- Consider making the source types case-insensitive.
- Do you need to pass %args to _init()?
- You may find it useful to have an _init() in My which calls $self->SUPER::_init().
- Is there a reason to return $self in list context?