sub Schedule { my ($self) = @_; $self->addTab(\&WatchLog); $self->addTab(\&SendEmail); } sub WatchLog { ... } sub SendEmail { ... } sub addTab { ... } sub go { my ($self) = @_; foreach my $code (@{$self->{CODETAB}}){ &{$code}($self)) } } #### use base A .... sub Schedule { my ($self) = @_; $self->addTab(\&AddLocalTime); $self->addTab(\&WatchLog);#This method is defined in the parent class $self->addTab(\&SendEmail); #Same here } sub AddLocalTime { }