in reply to Autocreating Classes
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');
In Section
Seekers of Perl Wisdom