Назад | Перейти на главную страницу

Как я могу установить модуль Perl, доступный только моему ID пользователя?

Мне нужно установить несколько модулей Perl для моих сценариев Perl. Однако эти модули недоступны на серверах, на которых я хочу запускать сценарии. Я также не хочу связываться с каталогами библиотек на сервере. Я думаю, что это можно сделать, манипулируя переменной "@INC". Мне нужно знать, как установить новые модули с помощью cpan и альтернативного @INC.

В качестве альтернативы, также может иметь смысл связать мой собственный двоичный файл / среду Perl с моим скриптом. Любые идеи?

Подробный ответ можно найти здесь: http://www.devdaily.com/perl/edu/articles/pl010015

Короткий ответ, положите свои модули, скажем, /home/face429/perlmodules, то в вашей программе на Perl используйте: use lib '/home/face429/perlmodules';.

Чтобы проверить, включен ли этот путь в @INC использование вы можете распечатать @INC.

Ваш ток каталог является частью пути, который ищет Perl.

perl -V покажет вам содержимое @INC, которое включает "." (текущий каталог) в конце.

Обратите внимание, что ваш текущий каталог именно такой, а не каталог, в котором находится ваш скрипт. Если он будет работать на веб-сервере, он легко сломается.

Вы также можете добавить конкретный путь, поставив use lib '/your/perl/modules' в ваш сценарий, как объяснил favoretti.

Наконец, вы можете добавить путь для всех ваших скриптов через переменную окружения PERLLIB, так что вам не нужно use libв каждом сценарии.

PERLLIB=/your/perl/modules

или SET PERLLIB = C:/your/perl/modules в Windows.