¿Cómo puedo encontrar todos los paquetes que heredan de un paquete en Perl?

Tengo varios sitios diferentes de los que descargo datos y los aplico a otros formatos (usando Perl) para usarlos en el trabajo, todos ejecutados desde un script de Perl, algo así:

#! /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;

y así sucesivamente y así sucesivamente. Por el momento cadaMy::Package es su propio paquete; no se hereda de un paquete base ni nada. Estoy planeando reescribirlos usandoMoose y esperaba que en lugar de tener que editar el script Perl que ejecuta la descarga cada vez que se agrega un nuevo paquete, podría haber una forma de encontrar paquetes que hereden de un paquete base, y luego en un bucle crear una instancia de cada uno y hacer el descargando, algo así como

#! /usr/bin/perl
use strict;

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

¿Es, o algo así, posible?

TIA

Respuestas a la pregunta(4)

Su respuesta a la pregunta