如何告诉CPAN(Perl)有关使用元编程创建的包?

时间:2010-11-30 19:33:29

标签: perl metaprogramming cpan

我有几个CPAN模块,它们广泛使用元编程来减少锅炉板并简化重构。

然而,其结果是有许多程序包以编程方式创建,因此CPAN的源代码中永远不会有package X::Y::Z;行来查找(然后用于将命名空间添加到您的第一个 - 来保留命名空间列表。)

所以我的问题是,是否有一种让CPAN了解这些运行时创建的包的首选方法。以下是我目前正在考虑的选项:

  • 手动搜索所有软件包并为CPAN创建一个虚拟pm文件以进行索引。
  • 手动搜索然后更新Build.PL以将其包含在provides列表中。
  • 向元编程例程添加一些代码以跟踪使用的包,并添加一个钩子到build dist以更新providesMETA.yaml的其他部分

目前最后一个选项是我倾向于的。我想知道这种方法是否有任何问题,或者更好的方法是使用完整的软件包列表更新CPAN。

1 个答案:

答案 0 :(得分:4)

如果我正确地读你,这不是问题,只要不破坏其他命名空间。声明创建的每个命名空间,只有您的发行版的基本命名空间和与该分发相关联的文件没有先决条件。如果你想“保留”某些名称空间,而不是创建空白.pm文件,请查看创建.pod文件和文档。