Просто чтобы быть ясно, что вы ищете на случайных пакетов в случайном коде 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 :: гр» - например, они могут быть названы автором файла «p1», «a :: p1» или «a :: b :: c :: p1_something».