У меня есть несколько модулей CPAN, которые широко используют метапрограммирование, чтобы сократить расходы и упростить рефакторинг.
Следствием этого, однако, является то, что есть много пакетов, которые создаются программно,таким образом, в исходном коде никогда не будет строки package X::Y::Z;
, которую CPAN может найти (а затем использовать для добавления пространства имен в список зарезервированных пространств имен в порядке поступления).
Поэтому мой вопрос: есть липредпочтительный способ сообщить CPAN об этих пакетах, созданных во время выполнения.Вот варианты, которые я сейчас рассматриваю:
- Поиск всех пакетов вручную и создание фиктивного
pm
файла для CPAN для индексации. - Поиск вручную, а затем обновление сборки.PL, чтобы включить их в список
provides
. - Добавьте некоторый код в подпрограммы метапрограммирования, чтобы отслеживать, какие пакеты используются, и добавьте хук в
build dist
, чтобы обновить provides
или какой-то другой раздел META.yaml
Последний вариант - это то, к чему я сейчас склоняюсь.Я хотел бы знать, есть ли какие-либо проблемы с этим подходом или какие-либо более эффективные способы обновления CPAN с помощью полного списка пакетов.