#perl
#perl
Вопрос:
Я пытаюсь установить среду Perl клиента в сети моего работодателя. Когда упомянутый клиент запускает наши приложения, отличные от Perl, большое количество кода Perl используется здесь и там по всему потоку их (создания чипов). Во время процесса архивирования на сайте заказчика собирается значительный объем содержимого Perl (скрипты, модули и т.д.). К тому времени, когда все распаковано в сети моего работодателя, предстоит разобраться во многом; например, переменная среды PERLLIB, полученная на сайте заказчика, содержит более 430 записей каталога.
Неудивительно, что мой вопрос больше относится к системному администратору: каким был бы наилучший метод проверки того, что захваченная среда Perl на сайте заказчика распаковывается и бесперебойно запускается в сети моего работодателя? Я понимаю, что это загруженный вопрос, но, по сути, убедиться, что более 430 записей в переменной среды PERLLIB упорядочены правильно, оказывается непросто.
После распаковки среды моего клиента я распечатываю содержимое @INC, когда скрипт Perl пытается запуститься, но не может найти определенный модуль (это, БЕЗУСЛОВНО, самая распространенная проблема). Затем я с помощью grep / нахожу, где находится модуль в извлеченной структуре каталогов, и перемещаю его в начало списка @INC.
perl -e «распечатать соединение($/,@INC);»
Прошу прощения, если это не лучшая платформа для публикации такого вопроса, но я не был уверен, куда еще обратиться за чем-то таким сложным.
Комментарии:
1. Может быть, PerlMonks сможет ответить на вопрос? Если вы решите опубликовать там, не забудьте объявить о перекрестной публикации, чтобы предотвратить ненужную работу.
2. Рассматривали ли вы Docker? docker.com/why-docker
3. Re » Переменная среды PERLLIB, записанная на сайте заказчика, содержит более 430 записей каталога. «, Что???? На самом деле не имеет смысла иметь более одной. PERL5LIB следует использовать для установленных модулей и
use FindBin qw( $RealBin ); use lib "$RealBin/...";
скриптами для поиска модулей относительно скрипта.
Ответ №1:
Единственная наиболее ценная вещь, которую вы могли бы сделать со своим временем и для своего клиента, — это уменьшить количество записей в @INC
и PERL5LIB
. Запись в @INC
может содержать любое количество модулей, поэтому даже большому и сложному проекту не нужно иметь слишком много каталогов для поиска.