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;

