package Callback; sub do_callback { my $coderef = shift; $coderef->(@_); } 1; #### package Parent; use Callback; sub new { bless {}, shift } sub do_something { ... } sub init { my $self = shift; my $coderef = \&do_something; Callback::do_callback($coderef, $self); } 1; #### package Child; use base qw(Parent); sub do_something { ... } 1; #### my $child = Child->new; #### $obj->$coderef()