use C; use D; unshift @C::ISA, 'D'; *C::doit = \&B::doit; my $c = new C; $c->doit();