Если вы замените часть строки на ${USR_PATH}
, вы будете ссылаться на переменную perl $USR_PATH
, а не на переменную окружения, которая в perl называется $ENV{USR_PATH}
.
perl -pi.bak -we 's#/home/AD/USR(?=/perl/5.8.0/bin/perl)#\$ENV{USR_PATH}#g'
*.pl *.txt *.conf
Использование заглядывания избавит вас от необходимости замены оставшейся части пути впоследствии.
Полагаю, вы хотите заменить его на буквальное значение.Если вы хотите заменить его фактическим значением в переменной среды, просто удалите обратную косую черту перед $ENV
.
Хотя использование переменной среды кажется удобным и все, это уменьшит переносимость ваших скриптов.Почему бы не использовать файл конфигурации?Если бы вы сделали это с самого начала, у вас не было бы этой проблемы.Найдите CPAN для хорошего модуля.