У меня есть фреймворк, написанный на Perl, который устанавливает множество переменных среды для поддержки межпроцессного (обычно это подпроцессного) взаимодействия. Мы храним наборы пар ключ/значение в XML-файлах. Мы постарались сделать имена ключей в верблюжьем регистре somethingLikeThis
. Все это хорошо работает.
Недавно нам доводилось передавать управление (цепочку) процессов из Windows в UNIX. Когда мы выплевываем хэш %ENV
в файл из Windows, ключ somethingLikeThis
становится SOMETHINGLIKETHIS
. Когда процесс Unix берет файл, перезагружает среду и ищет значение $ENV{somethingLikeThis}
, его не существует, поскольку UNIX чувствителен к регистру (со стороны Windows тот же код работает нормально).
С тех пор мы вернулись и изменили все ключи на ПРОПИСНЫЕ и решили проблему, но это было утомительно и причиняло боль пользователям. Есть ли способ заставить Perl в Windows сохранять регистр символов ключей хэша среды?