package My::Module; use strict; sub import { my ($class, %args) = @_; ... # Dynamically load either My::Module::API1 or My::Module::API2 }; #### package My::Module::API1; # The old API #### package My::Module::API2; # The new API #### use My::Module api => 'API1'; ...