没有 lib/*.pm 的 Perl CPAN 风格打包

标签 perl package cpan

我有一组 Perl 脚本和几个 XML 数据文件,我想分发它们所依赖的文件。目前,我有一个 shell 脚本,它将 bin/* 和 share/* 复制到目标安装树。它看起来有点笨拙,所以我想采用类似于标准 CPAN 方式来打包 Perl。

将我得到的东西捆绑在一个 CPAN 风格的包中是否有意义?我怀疑它没有任何问题,但我看过的每个教程都认为 lib/Blah.pm 是任何包中的基本文件——我什至没有 lib/目录,更不用说任何 .pm 文件了。

是否有一个标准的解决方案来将一组 Perl 脚本连同一些数据一起打包到一个 share/目录中?

最佳答案

发行版不关心模块。大多数工具默认设置为处理模块,因为这是常见的情况,但只要您提供逻辑来告诉构建文件如何处理您提供的任何文件,您就可以真正分发任何东西。

ExtUtils::Makemaker 很难用于这类事情,但是 Module::Build(尽管有“模块”这个词)使它变得容易得多。但是,您必须了解一些关于自定义 Module::Build 类的知识,以便您可以覆盖不需要的默认行为。

如果你在谈论独立脚本,你可以看看我的 scriptdist分布,或 Dr. Dobbs article I wrote about it .它不会为您处理 share/ 部分,但添加起来并不难。

关于没有 lib/*.pm 的 Perl CPAN 风格打包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4741142/

相关文章:

r - 关于 roxygen2 UTF-8 的警告

perl - CPAN 安装新模块是否会影响同一实时生产服务器上的 Perl-CGI 应用程序?

java - 在 Android .aar 库中重新打包 .jar-s

android - 将来自不同项目的包组合到eclipse中的单个项目中

perl - 在上传 Perl 模块之前,如何获得完整的 Kwalitee 输出?

Perl/CPAN 如何分发脚本而不是模块

perl - 如何将字符串作为输入以在 perl 中剪切命令

哈希问题的 Perl 哈希

perl - Selenium:FF 和 Chrome 之间的不同帧处理?

perl - 在 Perl 中使用 `strict` 定义全局变量