Perldoc не показывает документацию для установленных модулей Perl - PullRequest
3 голосов
/ 03 марта 2012

Установка модулей Perl из командной строки Linux с помощью команды cpan работает нормально, например:

$ cpan [Module]

и после окончания я могу просмотреть документацию модуля через:

$ perldoc [Module]

Но, сделав это с помощью cfengine, который просто автоматизирует сценарий команды cpanкомандах оболочки: список), модуль будет установлен, но perldoc не будет работать для него:

$ perldoc Text::Histogram
No documentation found for "Text::Histogram".*

Однако, вызывая:

$ man Text::Histogram

будет работать просто отлично.

Установка общей переменной среды для этого (например, предложенной справочной страницей perldoc) не представляется осуществимой, поскольку я наблюдаю, как файлы .pm размещаются в самых разных местах.

Есть намеки на это?

1 Ответ

2 голосов
/ 04 марта 2012

perldoc выполняет поиск пути к модулю Perl (@INC).Если perldoc не может найти его, perl не может его найти.Попробуйте perl -wle 'use The::Module', чтобы увидеть, может ли Perl загрузить его.Если он может найти его, то происходит что-то странное.

Что может случиться, если вы установили модуль с помощью сторонней программы (даже если он просто использует клиент cpan),установлен ли он в другом месте и / или с другим Perl, чем тот, который вы используете в командной строке.Для этого есть ряд причин, три из которых наиболее вероятны: ...

  • Он имеет PATH, отличающийся от вас, и нашел другую копию cpan для другого perl.
  • Клиент cpan настроен по-разному для установки в другой PATH.
  • cpan настроен для установки в домашний каталог и работает под другим пользователем.

Существует также странная вероятность, что модуль не имеет документации.

Вы можете увидеть, что делает perldoc, чтобы найти модуль с perldoc -D The::Module (это может быть -v в более старых версиях).

...