我试图使用我的脚本安装一个缺失的模块,因为我不能期望我的用户做任何简单的安装一个缺失的模块。
use strict;
use warnings;
use CPAN::Shell;
sub try_load {
my $mod = shift;
eval("use $mod");
if ($@) {
#print "$@ = $@n";
return(0);
} else {
return(1);
}
}
my $module = 'URI::Escape';
if (try_load($module)) {
print "loadedn";
} else {
print "not loadedn";
CPAN::Shell->install("URI::Escape");
# system("ppm install ");
}
但是我总是得到上面的测试脚本错误:
Can't locate package CPAN::Debug for @CPAN::Shell::ISA at checkmodule.pl line 3.
但是当我这样做的时候:
my $module = 'CPAN::Debug';
if (try_load($module)) {
print "loadedn";
} else {
print "not loadedn";
CPAN::Shell->install("CPAN::Debug");
# system("ppm install ");
}
我得到消息loaded
意味着我有CPAN::Debug
??
我不能做:perl -MCPAN -e shell
,因为CPAN认为我的GCC 4.6.1版本不够好,想要安装4.6.3,这将破坏我的许多开发环境以及安装在我用户系统中的工具。
有谁知道我如何才能绕过这个错误上面我的标题?谢谢!
CPAN::Shell
只是CPAN
模块的一个组件,不打算单独使用
如果将use
语句更改为use CPAN
,那么一切都应该为您工作