Используя CPAN, я установил GD :: Graph для создания горизонтальных гистограмм. CPAN установил модули в /root/.cpan/build/GD-2.45-4PSn9K, которого нет в @INC. В моем скрипте я могу получить доступ к модулям, добавив
use lib "/root/.cpan/build/GD-2.45-4PSn9K"
Скрипт теперь генерирует графики без проблем. Я хотел использовать отладчик perl ("perl -d myscript.pl"), но он жалуется, что не может найти GD.pm (который находится на этом пути). Я добавил путь к PERL5LIB, проверенный с помощью «perl -V», но все равно отладчик не может его найти.
Возможно, один из способов обойти это - установить GD в один из путей @INC, но а) я не знаю, как это сделать, и б) я действительно хотел бы понять, что происходит.
Это на Fedora Core 12.
Я не знаю, имеет ли значение if, но GD :: Graph фактически используется в модуле, который включен в мой основной скрипт. Основной скрипт не использует его.
Обновление: следуя приведенным ниже советам, я повторно ввел CPAN и принудительно установил. CPAN сказал, что нашел установку в /root/.cpan/ (и т. Д.) И предварительно добавил этот путь к @INC. Затем я вручную удалил GD из каталога .cpan и снова начал установку. На этот раз CPAN поместил его в то же место, а также в /usr/local/lib/perl5/GD-2.45PSn9K ". Он добавил оба пути к @INC. Я убедился, что он есть, и отладчик perl утверждает искать там, но все еще не может найти GD.pm (который там ) и не будет запускать скрипт.
@INC:
/usr/local/lib/perl5/GD-2.45-4PSn9K/
(and others)
Из perl -d:
Can't locate loadable object for module GD in @INC (@INC contains:
... и перечисляет этот путь среди других. Это действительно там:
[root /]# find . -name "GD.pm"
./usr/local/lib/perl5/GD-2.45-4PSn9K/GD.pm
./usr/local/lib/perl5/GD-2.45-4PSn9K/blib/lib/GD.pm
(and the /root/.cpan paths)