您是否将Perl应用程序开发为CPAN模块?

时间:2009-11-05 11:06:07

标签: perl deployment maintenance

最近我读了一篇博文,说开发Perl应用程序就像开发CPAN模块一样。 (Here it is - 感谢David!)给出的原因之一是您只需在项目目录中运行cpan .即可安装所有依赖项。这听起来很合理,我也喜欢你得到的“统一界面”。当你遇到这样的应用程序时,你知道makefile做了什么。这种方法的其他优点和缺点是什么?


更新:感谢您的回答。我还有一个关于依赖安装的问题,我post it separately

3 个答案:

答案 0 :(得分:11)

一般来说,是的,我会说这是一个好主意。 Catalyst使这很简单,因为catalyst.pl帮助程序脚本将为您的Web应用程序设置一个基本框架,并使用Makefile.PL等完成。

这意味着打包应用程序并将其部署到服务器非常简单。

编辑:我认为您考虑的原始博客帖子是来自Write your code like it's going on CPANPerlbuzz

  

“通过处理代码,我们永远不会像我们一样向CPAN发布,我们赢得了所有CPAN工具链的支持。每天都在变得越来越好的工具链。”

答案 1 :(得分:6)

是的,仅仅因为“CPAN模块”只建立了非常自由的做法。我更喜欢Module :: Install,我相信大多数理智的人也应该。要使用模块安装运行基本分发,我只需使用module-starter:

module-starter --mi --module "Foo::Bar" --author "Evan Carroll" --email "foo@bar.com"

然后,我在lib / Foo / Bar.pm中编辑pod:我不喜欢我的代码中间的pod。我通常将它全部移到底部并删除FUNCTION和VERSION部分,因为99.9%的模块是MoO的OO,而Module :: Install将从$ Foo :: Bar :: VERSION读取它。

然后我运行git-init,编辑.gitignore文件并添加'MANIFEST','Meta.yml','Makefile.old','blib /','inc /'以及什么曾经临时文件编辑器我正在创建可能正在使用。 (如果你要推送到CPAN,你会想要将.gitignore和.git /添加到MANIFEST.skip,这样他们也不会上去。)然后我git add .,我有了我的模块在git中有一个自举的构建/测试系统。

然后我运行github,创建一个repo,上传我的模块,并将公共存储库添加到Makefile.PL repository git://github....并开始编码。

即使您没有推送到CPAN,module-install也为良好的模块提供了良好的基础。

其他优点,您可以运行make dist,并获取tarball并在私有http服务器上轻松托管,然后告诉客户端或服务器使用cpanp http://host/path进行安装。您还可以获得Module::Install的所有优点,它将在Windows上使用dmake,如果您没有,则下载dmake。跨平台的优点非常神奇。

没有重大缺点,甚至没有值得注意的小缺点。

答案 2 :(得分:-4)

向CPAN发布内容意味着责任。你需要提供一份好的文件,进一步的支持和其他。或者,不要去CPAN。

由于