Добавление библиотеки в массив @INC в perl - PullRequest
1 голос
/ 30 ноября 2009

Я запускаю скрипт, для работы которого требуется библиотека Curl.pm. Я использовал YUM для установки библиотеки, и теперь я пытаюсь, чтобы мой скрипт использовал ее, но я продолжаю получать сообщение об ошибке

Can't locate WWW/Curl.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.6/x86_...

Когда я набираю в командной строке следующее:

об / мин -ql curl

Я получаю:

/usr/bin/curl
/usr/lib64/libcurl.so.3
/usr/lib64/libcurl.so.3.0.0
/usr/share/doc/curl-7.13.1
/usr/share/doc/curl-7.13.1/BUGS
/usr/share/doc/curl-7.13.1/CHANGES
/usr/share/doc/curl-7.13.1/COPYING
/usr/share/doc/curl-7.13.1/FAQ
 ...
/usr/share/man/man1/curl.1.gz
/usr/bin/curl
/usr/lib/libcurl.so.3
/usr/lib/libcurl.so.3.0.0
/usr/share/doc/curl-7.13.1
/usr/share/doc/curl-7.13.1/BUGS
/usr/share/doc/curl-7.13.1/CHANGES
... etc.

Какой из указанных выше путей должен быть включен в мой каталог @INC? Я думал, что приведенный ниже код решит проблему, если поместить его в начало моего скрипта, но я все еще получаю ту же ошибку @INC error.

BEGIN {
  unshift(@INC, '/usr/lib/libcurl.so.3');
  use WWW::Curl;
}

Когда я печатаю

cpan> i /WWW::curl/

Я получаю следующий список ниже. Я все еще в тупике. Я хочу использовать WWW :: curl, и я не знаю, какой из путей ниже (или выше) добавить в @INC! Похоже, он уже установлен. Что мне делать отсюда?

cpan> i /WWW::curl/
CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata 
Database was generated on Mon, 30 Nov 2009 02:55:47 GMT
Module          WWW::Curl       (S/SZ/SZBALINT/WWW-Curl-4.09.tar.gz)
Module          WWW::Curl::Easy (S/SZ/SZBALINT/WWW-Curl-4.09.tar.gz)
Module          WWW::Curl::Form (S/SZ/SZBALINT/WWW-Curl-4.09.tar.gz)
Module          WWW::Curl::Multi (S/SZ/SZBALINT/WWW-Curl-4.09.tar.gz)  
Module          WWW::Curl::Share (S/SZ/SZBALINT/WWW-Curl-4.09.tar.gz)
Module          WWW::Curl::Simple (A/AN/ANDREMAR/WWW-Curl-Simple-0.05.tar.gz)
Module          WWW::Curl::Simple::Request (A/AN/ANDREMAR/WWW-Curl-Simple-0.05.tar.gz)
7 items found

Ответы [ 3 ]

8 голосов
/ 30 ноября 2009

Вы установили библиотеку curl. Чтобы установить модуль WWW :: Curl, выполните следующие действия:

yum install perl-WWW-Curl
8 голосов
/ 30 ноября 2009

Вы установили curl, что не то же самое, что WWW::Curl.

Вам необходимо установить модуль Perl WWW::Curl. Сначала вы должны выполнить поиск модуля в репозиториях пакетов вашей ОС. Если вы не можете найти его там, используйте cpanm для его установки:

$ cpanm WWW::Curl

См. Также perldoc perlmodinstall.

2 голосов
/ 30 ноября 2009

Я собираюсь игнорировать тот хаос, который вижу, и просто отвечу на вопрос:

  1. Вы не добавляете библиотеки в @INC, вы добавляете каталоги. Добавляемые каталоги содержат модули Perl, т.е. *.pm файлы.
  2. Для этого вы просто используете use lib. Если каталог, который вы хотите добавить - /foo/bar:

use lib qw| /foo/bar |;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...