【发布时间】:2011-05-18 02:11:59
【问题描述】:
我有几个 CPAN 模块,它们广泛使用元编程来减少样板文件并简化重构。
然而,这样做的结果是有许多包是通过编程方式创建的,因此源代码中永远不会有 package X::Y::Z; 行供 CPAN 查找(然后用于将命名空间添加到您的先到者列表保留命名空间)。
所以我的问题是,是否有让 CPAN 了解这些运行时创建的包的首选方式。以下是我目前正在考虑的选项:
- 手动搜索所有包并创建一个虚拟的
pm文件供 CPAN 索引。 - 手动搜索然后更新 Build.PL 以将它们包含在
provides列表中。 - 在元编程例程中添加一些代码以跟踪使用了哪些包,并在
build dist中添加挂钩以更新provides或META.yaml的其他部分
我目前倾向于最后一个选项。我想知道这种方法是否有任何问题,或者有什么更好的方法可以让 CPAN 更新为完整的软件包列表。
【问题讨论】:
标签: perl metaprogramming cpan