To solve this problem, there's an intermediate class that imports the correct set of methods. This class then inherits from the intermediate class. To solve this problem, there's an intermediate class that imports the correct set of methods. This class then inherits from the intermediate class. This works, and isolates the tricky bits to a single intermediate class, but it also demonstrates the problems that can crop up when multiple inheritance is combined with a strong aversion to code duplication.

A simpler example of a compound field can be found in Rose::HTML::Form::Field::PhoneNumber::US::Split. It too uses multiple inheritance, but its family tree is more conveniently built, saving it from selective method importing shenanigans.

This field also overrides the is_full()|Rose::HTML::Form::Field::Compound/is_full method. A valid time can be extracted from the field as long as both the hour and AM/PM subfields are not empty. All other empty fields will be treated as if they contained zeros (00).