in reply to class implementation question

... because in the parent constructor, the object instance is still a parent, not a child.

Are you sure? Try adding

print "The instance is a ", ref($self), "\n";
right after you bless.