Pour être clair, vous regardez les paquets aléatoires dans le code Perl aléatoire?
Ou pour Perl modules, par ex. "a/b/c/d1.pm" avec le module "a :: b :: c :: d1"? Dans les deux cas, vous ne pouvez pas utiliser une seule instruction "use" pour les charger tous. Ce que vous devez faire est de trouver tous les fichiers appropriés, en utilisant glob
ou File::Find
.
Dans le premier cas (modules), vous pouvez les charger soit par require
-ment chaque fichier ou en convertissant le nom de fichier en nom du module (s#/#::#g; s#\.pm$##;
) et appelant use
sur chaque module individuellement.
En ce qui concerne les paquets réels imbriqués dans des fichiers Perl aléatoires, ces paquets peuvent être:
Listed par grepper chaque fichier (encore une fois, a trouvé via glob
ou File::Find
) pour /^package (.*);/
En fait, chargé en exécutant require $file
pour chaque fichier.
Dans ce cas, s'il vous plaît noter que le nom du package pour chacun de ces paquets dans a/b/c/1.pl
ne pas besoin d'être lié à « a :: b :: c » - par exemple ils peuvent être nommés par l'auteur du fichier "p1", "a :: p1" ou "a :: b :: c :: p1_something".