use Devel::Symdump; my @subclasses; foreach (Devel::Symdump->rnew->packages) { push @subclasses, $_ if UNIVERSAL::isa($_, $class); }; #### sub subclasses_of { my $class = shift; grep { $_->isa($class) && $_ ne $class} Devel::Symdump->rnew->packages; };