There is not really such thing as creating a package: namespaces are just autovivicated as soon as you assign something to a glob (i.e. create a global, sub, filehandle etc) in that namespace. To nearly all intents and purposes an empty namespace is a non-existing namespace.
Since the only thing you're doing with the created package is setting its inheritance chain in @Package::ISA, you can do that directly:
sub inherit_from_A {
my $package_name = shift;
no strict 'refs';
@{"${package_name}::ISA"} = qw(A);
}
# create class B1..
inherit_from_A('B1');