Установка Perl не работает - PullRequest
2 голосов
/ 02 марта 2012

Я не могу установить какие-либо модули в свой Perl 5.8.8. Я получаю это сообщение об ошибке при попытке установить что-либо:

Global symbol "%Config" requires explicit package name at /usr/lib/perl5/5.8.8/File/Copy.pm line 83.
Global symbol "%Config" requires explicit package name at /usr/lib/perl5/5.8.8/File/Copy.pm line 83.
Global symbol "%Config" requires explicit package name at /usr/lib/perl5/5.8.8/File/Copy.pm line 83.
Compilation failed in require at /usr/lib/perl5/5.8.8/CPAN.pm line 51.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.8/CPAN.pm line 51.
Compilation failed in require at /usr/lib/perl5/5.8.8/App/Cpan.pm line 183.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.8/App/Cpan.pm line 183.
Compilation failed in require at /usr/bin/cpan line 8.
BEGIN failed--compilation aborted at /usr/bin/cpan line 8.

Пожалуйста, помогите. Я пробовал поискать в Google, но большинство хитов предполагают, что это около use strict. В моем случае кажется, что у меня сломана установка.

1 Ответ

3 голосов
/ 02 марта 2012

File::Copy делает это:

use Config;

и позже

if ((($Config{d_symlink} && $Config{d_readlink}) || $Config{d_link}) &&

Если в @INC есть файл с именем Config.pm (включая каталог, в котором вы выполняете код), он будет иметь приоритет над встроенным в Perl Config module, и File::Copy больше не будет иметь хэш %Config, поэтому File::Copy сломается.

Решение состоит в том, чтобы назвать модуль-нарушитель как-нибудь иначе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...