Я пытаюсь установить отсутствующий модуль с помощью моего скрипта, потому что я не могу ожидать, что мои пользователи сделают что-нибудь простое, модуль.Не удается найти пакет CPAN :: Debug for @CPAN :: Shell :: ISA at
use strict;
use warnings;
use CPAN::Shell;
sub try_load {
my $mod = shift;
eval("use $mod");
if ([email protected]) {
#print "\[email protected] = [email protected]\n";
return(0);
} else {
return(1);
}
}
my $module = 'URI::Escape';
if (try_load($module)) {
print "loaded\n";
} else {
print "not loaded\n";
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 "loaded\n";
} else {
print "not loaded\n";
CPAN::Shell->install("CPAN::Debug");
# system("ppm install ");
}
я получаю значение сообщение loaded
У меня есть CPAN::Debug
???.
Я не могу: perl -MCPAN -e shell
, потому что CPAN решил, что моя версия GCC 4.6.1 недостаточно хороша и хочет установить 4.6.3, и это сломает много моей среды разработки, а также инструменты, установленные в мои системы пользователей. [Я действительно хочу заставить CPAN использовать мою системную версию MinGW GCC, но я не знаю, как это сделать, но это уже в другое время].
Кто-нибудь знает, как я мог обойти эту ошибку выше в моем названии? Спасибо!
Это буквально говорить о пакета, как в пространстве имен. Проблема * не состоит в том, что модуль не может быть загружен; это то, что он * не был загружен. Это, казалось бы, указывает на то, что вы столкнулись с CPAN :: Shell или CPAN :: Debug. – ikegami
hey @ikegami Как я могу заставить CPAN использовать версию GCC моей системы вместо загрузки и установки нового GCC? Я не хочу обновляться, потому что некоторые мои инструменты скомпилированы с использованием старой версии GCC, и если я обновляю ее, это испортит много других вещей. Я пытаюсь сделать работу проще, а не сложнее. – YouHaveaBigEgo
Не знаю. Это функциональность ActiveState добавляет к их дистрибутиву. – ikegami