分发Perl应用程序

时间:2010-08-02 07:22:04

标签: perl distribution cpan

我最近创建了一个小型Perl应用程序,它利用了一些需要通过CPAN安装的非核心模块。

有没有办法分发应用程序,能够检查是否安装了所需的模块,如果不是,则从CPAN中提取它们?我想我正在寻找类似于CPAN自动依赖安装功能的东西。

我考虑过使用module-starter和Module :: Install创建类似模块的目录结构,然后定制Build文件将应用程序安装到/ bin ...但是我不确定这是不是鞋子-horn解决方案。

2 个答案:

答案 0 :(得分:3)

这不是一个鞋拔的解决方案,而是正确的事情。你应该让一个专门的工具处理依赖关系,因为角落的情况,例如写下安装说明:

  1. 解压缩档案。
  2. 在未归档目录中运行cpan .
  3. 您无需更改Build文件以在bin目录中安装程序,默认情况下会这样做。

答案 1 :(得分:-1)

BEGIN {
    eval "use evil::module";
    if($@) { `sudo perl -MCPAN -e 'install evil::module'`; exit ; }
}
  1. 您可以轻松检查是否存在某个模块,并且a)尝试安装它并退出/重新启动应用程序b)croak / die。 (好像在上面的代码片段中)

  2. 您还可以附加要打包的模块,将它们解压缩到某个目录,然后将dir推送到开始块中的@INC。