package ThisIsMyPackge; package Foo; package A our @ISA = qw{Foo}; sub validate { do something; } package B our @ISA = qw{Foo}; sub validate { do something; } package C our @ISA = qw{Foo}; sub validate { do something; } package Bar; package D our @ISA = qw{Bar} sub apply { do something; } package E our @ISA = qw{Bar} sub apply { do something; } package F our @ISA = qw{Bar} sub apply { do something; }