最近我读了一篇博文,说开发Perl应用程序就像开发CPAN模块一样。 (Here it is - 感谢David!)给出的原因之一是您只需在项目目录中运行cpan .
即可安装所有依赖项。这听起来很合理,我也喜欢你得到的“统一界面”。当你遇到这样的应用程序时,你知道makefile做了什么。这种方法的其他优点和缺点是什么?
更新:感谢您的回答。我还有一个关于依赖安装的问题,我post it separately。
答案 0 :(得分:11)
一般来说,是的,我会说这是一个好主意。 Catalyst使这很简单,因为catalyst.pl帮助程序脚本将为您的Web应用程序设置一个基本框架,并使用Makefile.PL等完成。
这意味着打包应用程序并将其部署到服务器非常简单。
编辑:我认为您考虑的原始博客帖子是来自Write your code like it's going on CPAN的Perlbuzz。
“通过处理代码,我们永远不会像我们一样向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)
由于