# Backend::A package Backend::A; sub foo { } 1; #### # Backend::B package Backend::B; sub foo { } 1; #### # main my $backend = 'Backend::A'; require $backend; $backend->foo(); # then later, if necessary: $backend = 'Backend::B'; require $backend; $backend->foo();