package BaseA; sub func {} package BaseB; sub func {}; package Derived; use base qw(BaseA BaseB); sub func { my $self = shift; $self->SUPER::func(); # calls BaseA::func $self->BaseA::func(); # same $self->BaseB::func(); # only way to access BaseB::func }