我正在使用 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");
任何人都可以帮我解释如何添加逻辑吗?
答案 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模块安装”
答案 2 :(得分:0)
或使用 perl -MCPAN -eshell
从命令行使用 install [module]