如何使用system命令安装cpan模块 - perl

时间:2014-09-13 06:02:12

标签: perl

我正在使用 Windows操作系统,我有运行的perl脚本。在我正在使用的脚本Path::Class::Rule模块中。

我的脚本无法在某些系统上运行,因为上面提到的模块没有安装。所以我需要添加一个预先设置的逻辑,它将检查系统上是否安装了所有必需的模块如果没有,则先安装模块然后再进行其余处理。

我正在尝试使用system subroutine安装模块,但是perl模块没有安装。

以下是我正在使用的代码:

use warnings;
use Path::Class;
use Path::Class::Rule;
use Cwd qw();
use File::Path qw(make_path);
use File::Copy;
system ("ppm install Path::Class::Rule");

任何人都可以帮我解释如何添加逻辑吗?

3 个答案:

答案 0 :(得分:1)

看看这个:

use Path::Class::Rule;
...;
system ("ppm install Path::Class::Rule");

您之前尝试use模块

尝试这样的事情:

BEGIN {
   eval { require Path::Class::Rule }
      or system("ppm install Path::Class::Rule");
}
use Path::Class::Rule;

虽然我个人认为更好的主意是:

BEGIN {
   eval { require Path::Class::Rule }
      or die "Missing Path::Class::Rule. See README for installation instructions.\n";
}
use Path::Class::Rule;

答案 1 :(得分:0)

您的逻辑有缺陷-您的代码不应检查缺少的模块(它将在每次运行时完成)。

您可以使用以下命令安装CPAN模块

perl -MCPAN -e 'install [MODULE]'

您可以使用 batch cmd 安装文件来安装所有必需的模块。

您可以使用 perl 安装脚本,该脚本将验证缺少的模块并进行安装。

注意::是否引用安装脚本,您的信息不清楚。

您需要阅读文档“ perl模块安装”

How to install CPAN modules

How to install CPAN modules

What's the easiest way to install a missing Perl module?

答案 2 :(得分:0)

或使用 perl -MCPAN -eshell

从命令行使用 install [module]