Просто чтобы прояснить, вы смотрите на случайные пакеты в случайном коде Perl?
Или для модулей Perl , например. «a / b / c / d1.pm» с модулем «a :: b :: c :: d1»?
В любом случае вы не можете использовать один оператор "use" для загрузки их всех.
Вам нужно найти все подходящие файлы, используя glob
или File::Find
.
В первом случае (модули) вы можете затем загрузить их, либо require
-из каждого файла, ИЛИ путем преобразования имени файла в имя модуля (s#/#::#g; s#\.pm$##;
) и вызова use
для каждого модуля отдельно. *
Что касается реальных пакетов, вложенных в случайные файлы Perl, то эти пакеты могут быть:
Перечислено путем сопоставления каждого файла (опять же, найдено через glob
или File::Find
) для /^package (.*);/
На самом деле загружается путем выполнения require $file
для каждого файла.
В этом случае обратите внимание, что имя пакета для каждого из этих пакетов в a/b/c/1.pl
будет НЕ должно быть связано с "a :: b :: c" - например, они МОГУТ быть названы автором файла "p1", "a :: p1" или "a :: b :: c :: p1_something".