in reply to Calling chains, extends, and subclassing

If I've understood correctly, you've got parallel class heirarchies, Quiz/Answer/Question. If someone does a custom subclassing of all three (or some two) you want to avoid them having to specify the full type name of the related class?

Its a bit icky, but you could put 'make_question' into your base Quiz class, munge the type name and do something like this:

package NHB::QuizMaster::Quiz; sub make_question { my $s = shift; my $type = ref $s; # X::Y::Z::Quiz $type =~ s/::Quiz$/::Question/; my $question = new $type; ...etc }
I would have expected this to require no strict 'refs', but it doesn't seem to.

It also feels a bit icky, but maybe that's just me.