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

zou*_*oul 18 deployment perl maintenance

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


更新:感谢您的回答.我还有一个关于依赖安装的问题,我会单独发布.

Dav*_*ous 11

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

这意味着打包应用程序并将其部署到服务器非常容易.

编辑:我认为您正在考虑的原始博客文章是编写您的代码,就像它来自Perlbuzz的CPAN.

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


Eva*_*oll 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%的模块是Moose的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.跨平台的优点非常神奇.

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