package SwimmingFlyingThing; use AbstractClass qw(swim fly); #### pacakage AbstractBird; use SwimmingFlyingThing; use AbstractClass; @ISA = 'SimmingFlyingThing'; sub fly { print "Flap Flap Flap" } #### package Duck; @ISA = 'AbstractBird'; sub swim { print "Paddle paddle paddle" } sub new { ... }