我正在编写一个我希望与其他人分享的perl程序,最终通过cpan。它已经到了我应该开始更大规模思考的地步。
十年前,我曾经使用过h2xs包装制造商。这仍然是最值得推荐的入门方式吗?曾经有过几种选择。因为我从头开始很少回忆,所以这一切都很简单。
我需要阅读一些长文本文件(不是perl模块)进行配置。无论模块安装在何处,我在哪里放置它们以及如何访问它们? (FindBin?) _DATA _不方便。
我需要提供一个可执行文件(linux和osx)。可以将可执行文件放入用户的路径中作为模块安装的一部分吗? (工作原理)
我希望能够继续开发,运行它以进行测试,拥有新版本,重新打包并轻松重新上传。
在上传到cpan之前,我可以共享一个cpan软件包,以方便本地安装到下载程序和测试人员吗?
#cpan< mybundle.cpanbundle
建议表示赞赏。
的问候,
/ IAW
答案 0 :(得分:5)
如果我说与Andy Lester发生冲突,请听取他的意见。他比我更了解。
Module::Starter是一种生成模块脚手架的简单方法。我的看法是几年来这种事情的默认情况。
对于配置/支持文件,我想你可能想要File::ShareDir。如果只是需要多个__DATA__
部分,可能值得考虑Data::Section。
您当然可以put scripts in the bin
subdirectory of your distribution,构建工具会在安装时将其放在正确的位置。
构建工具将负责您描述的工作流程。
捆绑包是不同的。您进行分发并共享tarball / archive。
如果您恰当地设置PERL5LIB
,请重复make test
,make install
,make dist
到您心中的内容。出于开发/共享的目的,许多项目在github或类似项目上进行工作 - 使其易于共享。他们也有私人账户用于商业目的。如果您想要倒带并查看引入问题的位置/时间非常有用。
如果你得到cpanm的副本(安装简单,相当轻量级),那么它可以从tar.gz文件安装,甚至可以直接从git存储库安装。您还可以告诉它安装到本地目录(local::lib兼容 - 另一个非常有用的实用程序)。
希望截至2014年这是合理的最新版本。您可能会看到Dist::Zilla提到了模块开发。我的理解是,对于那些拥有大量CPAN发行版的人来说,它最有用。哦 - 如果您(或其他读者)不了解它们,请查看autodie和Try::Tiny周围的错误和异常,Moose(针对功能齐全的面向对象框架) )和Moo(对于较小的轻量级版本)。
我认为这些建议完全没有争议。我发现cpanm
比“完整”的cpan客户端更令人愉快,Moo
现在也很流行。
答案 1 :(得分:4)
看一下Module :: Starter及其功能更强大(更复杂)的继任者Dist :: Zilla。
无论你做什么,都不要使用h2xs。 Module :: Starter是专门创建的,因为h2xs是一个不适合创建发行版的工具。