#!/usr/bin/perl use strict; package BAR; sub bang { print "BANG!\n"; } package FOO; use base qw( BAR ); sub new { my $class = shift; return bless {}, $class; } sub bang { print "* please be quiet *\n" } package BAZ; use base qw( BAR ); sub bang { my $self = shift; $self->SUPER::bang(); } sub new { my $class = shift; return bless {}, $class; } package main; my $foo1 = FOO->new(); my $foo2 = BAZ->new(); my $foo3 = FOO->new(); $foo1->bang(); $foo2->bang(); $foo3->SUPER::bang();