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

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

В качестве альтернативы может также иметь смысл объединить мой собственный двоичный файл / среду Perl с моим скриптом. Есть идеи?

2 ответа

Подробный ответ можно найти здесь: 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 в винде.

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