Я достиг этого, используя Rule :: notIn ($ array), этот массив $ имеет все даты между valid_from_date и valid_until_date.
Если необходимо изменить переменные среды глобально и постоянно, как будто Вы устанавливаете его в панели управления, то необходимо унавозить с реестром (обновление: и теперь существуют модули, чтобы сделать это, Win32:: ENV и Win32:: ENV:: Путь). Обратите внимание, что замена переменных в реестре и "широковещательная передача" изменения не изменят переменные среды в некоторых текущих процессах, особенно perl.exe и cmd.exe.
Если Вы просто хотите изменить текущий процесс (и впоследствии порожденные дочерние процессы), то глобальная переменная хеша %ENV - то, что Вы хотите (например, $ENV {ПУТЬ}). См. perldoc perlvar.
$ENV {ПУТЬ}?
Следует иметь в виду, что переменные среды только влияют на подпроцессы, как бы то ни было. Вы не можете запустить программу Perl, изменить %ENV и затем видеть, что изменение в родительском процессе - среда не прокладывает себе путь.
Можно сделать то использование %ENV
хеш
$ENV{PATH} = 'C:\\Windows\;D:\\Programs';