in reply to Multiple instances of the same base class
Usually, whenever you call a package's new method, it should already be returning a brand new instance of itself, so I would think what you have is already mostly correct.
Some other things I noticed though...
I think instead of:
You actually want:use BasicX;
use base BasicX;
This is because use base establishes a ISA relationship for between your current class and the specified base class(es).
Beyond that, change this section:
To something like this:my $newclass = BasicX->new(...);
That should work properly.my $newclass = $class->SUPER::new(...);
In Section
Seekers of Perl Wisdom