Мне нужно установить несколько модулей 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.