package Newton; # methods and class attributes supported by all Newtons ... sub be_famous { } package Issac; # inherit things Newtons can do @ISA qw(Newton); # methods and class attributes supported by Newton::Issac instances ... sub progress_physics { } package John; @ISA qw(Newton); # no methods/attributes, by themselves Newton::John's can just be famous (inherited from Newton) package Olivia; @ISA qw(John); # methods and class attributes supported by Newton::John::Olivia instances ... sub sing_like_a_bird { }