package Buz; sub goo { print "here's the goo\n" } package Bar; @ISA = qw( Buz ); sub google { print "google here\n" } package Baz; sub mumble { print "mumbling\n" } package Foo; @ISA = qw( Bar Baz ); sub new { my $type = shift; return bless [], $type}; sub grr { print "grumble\n" } sub goo { my $self = shift; $self->SUPER::goo()}; sub mumble { my $self = shift; $self->SUPER::mumble()}; sub google { my $self = shift; $self->SUPER::google()}; package main; $foo = Foo->new; $foo->mumble; $foo->grr; $foo->goo; $foo->google;