Como posso encontrar todos os pacotes que herdam de um pacote em Perl?

Eu tenho vários sites diferentes dos quais eu faço o download de dados e os faço massagens em outros formatos (usando o Perl) para uso no trabalho, que são todos executados a partir de um script Perl meio que assim:

#! /usr/bin/perl
use strict;

use My::Package1;
use My::Package2;

my $p1 = My::Package1->new;
$p1->download;

my $p2 = My::Package2->new;
$p2->download;

e assim por diante. No momento, cadaMy::Package é o seu próprio pacote; não herda de um pacote básico ou qualquer coisa. Estou planejando reescrevê-los usandoMoose e eu esperava que, em vez de ter que editar o script Perl que executa o download cada vez que um novo pacote fosse adicionado, poderia haver uma maneira de encontrar pacotes que herdam de um pacote base e, em um loop, instanciar cada um e fazer o baixando, tipo assim:

#! /usr/bin/perl
use strict;

for my $pname (packages_that_inherit_from("My::Package")) {
    my $package = $pname->new;
    $package->download;
}

É isso ou algo ilusório possível?

TIA

questionAnswers(4)

yourAnswerToTheQuestion