in reply to subclass discovery at runtime

Devel::Symdump can do what you want. Something like:

use Devel::Symdump; my @subclasses; foreach (Devel::Symdump->rnew->packages) { push @subclasses, $_ if UNIVERSAL::isa($_, $class); };

should do what you want.


Actually, it won't since $class->isa($class) is true - it will include the class as a member of its subclasses. The following will return just the subclasses :-)

sub subclasses_of { my $class = shift; grep { $_->isa($class) && $_ ne $class} Devel::Symdump->rnew->packag +es; };