Perldoc не показывает документацию для установленных модулей Perl

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

$ cpan [Module]

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

$ perldoc [Module]

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

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

Однако, ссылаясь на:

$ man Text::Histogram

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

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

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

1 ответ

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 в более старых версиях).

Другие вопросы по тегам