It would be possible to traverse each element of @INC, but that strikes me as rather ugly.
It is ugly, and it's not enough. With that approach you get all parent classes, not all subclasses. Instead you'd have to walk the symbol tables and check their @ISA arrays - even uglier.
Generally it's better to use a different approach, for example register each base class with the parent:
{
package Your::Parser;
my @parsers;
sub register {
push @parsers, $_[0];
}
}
{
package Your::Sub::Parser;
our @ISA qw(Your::Parser);
__PACKAGE__->register();
}