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; };
|
|---|