Strawberry Perl: забывает переменные окружения?

Я установил несколько модулей в мой Strawberry Perl, работающий в Windows XP, например:

  • Regexp:: Общие
  • URI::Find::Schemeless

Эти библиотеки отлично работают в моем Perl-коде в первый раз сразу после установки каждого модуля.

Проблема в том, что каждый последующий день, когда я запускаю свои скрипты, они терпят неудачу с ошибкой:

Не удается найти Regexp/Common.pm в @INC (@INC содержит: C:/strawberry/perl/lib C:/ strawberry/perl/site/lib C:\strawberry\perl\vendor\lib .)

Я поместил все подходящие пути в переменные среды в Windows: PERL5LIB и другие, такие как lib, которые предлагались в различных других ответах на stackru и на других сайтах, связанных с установкой модулей. Сценарии продолжают терпеть неудачу, пока я не выполню следующий обходной путь, который я выяснил:

  1. Откройте окно "Изменить переменные среды" в Windows. ("Мой компьютер" -> "Свойства" -> вкладка "Дополнительно" -> "Переменные среды")
  2. Не добавляя и не меняя ничего, нажмите ОК.
  3. Снова откройте все консоли Perl, которые уже были открыты, или откройте новое окно Perl.
  4. Теперь библиотеки все найдены без проблем.

У кого-нибудь есть идея, почему это может происходить? Я подозреваю, что это может быть связано с Windows/cmd или даже с настройкой среды Windows моей компании?

Любые предложения будут оценены, потому что это очень раздражающая проблема!

1 ответ

Решение

Windows не очищает переменные среды ежедневно по умолчанию, поэтому, вероятно, что-то в ваших корпоративных настройках сбрасывает переменные среды.

Если это так, у вас есть несколько вариантов:

  1. Попросите администраторов сети изменить сценарий, чтобы он не сбрасывал их (или не включал PERL5LIB каталоги, которые вы хотите указать).
  2. Напишите еще одно ежедневное задание, выполняемое после их ежедневного задания, которое повторно добавляет переменные на локальном компьютере.
  3. Оберните ваши Perl-скрипты в пакетный файл Windows или запустите их с perl -I указать библиотеку во время выполнения.
  4. Запустите ваши Perl-скрипты из Cygwin Bash или Mingw Bash, которые не будут использовать глобальные переменные среды вашего компьютера.
Другие вопросы по тегам