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; };
In reply to Re: subclass discovery at runtime
by adrianh
in thread subclass discovery at runtime
by dash2
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |