Как я могу установить путь включения Perl для модулей для CGI-скрипта? - PullRequest
8 голосов
/ 10 декабря 2008

У меня установлено несколько модулей Perl на моем хост-компьютере в ~/perl, как мне добавить их в путь к модулю Perl? Установка PERL5LIB или unshift пути к @INC, безусловно, работает, но переменная окружения не помогает при запуске в качестве CGI-сценария, а способ @INC не очень переносим. Есть ли способ лучше? Это должно быть общая проблема, я что-то упустил?

Ответы [ 2 ]

9 голосов
/ 10 декабря 2008

Более чистый способ сделать это, по моему мнению:

use lib "/path/" ;  

Есть и другие интересные и хорошие способы сделать это, которые можно найти здесь:

http://www.slideshare.net/pfig/cpan-training-presentation/

Кроме того, в отношении сценариев CGI вы МОЖЕТЕ определить пути PERL5LIB для вашего CGI Env, это зависит только от вашего веб-хоста.

Некоторые веб-хосты разрешают определенный контроль переменных env для среды CGI, и вам просто нужно их установить, другие могут иметь список «разрешений», позволяющий переменным, видимым во время запуска, появляться в локальной области видимости.

Может помочь узнать, как это сделать на вашем конкретном HTTP-сервере.

Существует еще один вариант, если настройка ENV вам не по вкусу: local :: lib

Который автоматически ищет некоторые предопределенные пути.

6 голосов
/ 10 декабря 2008

PERL5LIB прекрасно работает для CGI-скриптов. Вам просто нужно установить переменную в нужном месте, например, в конфигурации сервера. Какой веб-сервер вы используете? Для Apache я использую директиву SetEnv от mod_env.

@ INC является портативным. Пути, которые вы там указали, могут быть не одинаковыми на каждой машине, но у вас не должно быть проблем с самой переменной.

Читали ли вы часто задаваемые вопросы в perlfaq8 :

...