На этом шаге мы рассмотрим операцию замены.
s/PATTERN/REPLACEMENT/egimosx
Операция замены s/PATTERN/REPLACEMENT/ осуществляет поиск образца PATTERN и, в случае успеха, замену найденного фрагмента текстом REPLACEMENT. Возвращаемым значением является число сделанных замен или пустая строка (ЛОЖЬ), если замен не было. По умолчанию поиск и замена осуществляются в специальной переменной $_. Ее можно заменить другой строкой при помощи операций связывания =~ или !~:
$var =~ s/PATTERN/REPLACEMENT/egimosx
Флаг g задает глобальную замену всех фрагментов, удовлетворяющих образцу PATTERN, текстом REPLACEMENT.
Флаг е означает, что заменяющий текст REPLACEMENT следует рассматривать как Perl-выражение, которое надо предварительно вычислить. Например, в результате выполнения скрипта
#! perl -w
$str="abaabbaaabbbaaaabbbb";
$result=$str =~s[(a+b+)]<length($1)>ge;
print "result=$result new str=$str\n";
будет выведено число сделанных замен $result и новое значение строки $str, в которой каждый найденный фрагмент, соответствующий образцу [а+b+], заменен числом, равным его длине:
Рис.1. Результат работы скрипта
Флаги imosx имеют тот же смысл, что для операции поиска m//.
Так же, как и в операции замены, в качестве ограничителей для выделения образца можно использовать любую пару символов, не являющихся цифрой, буквой или пробельным символом. Можно использовать различные ограничители для выделения образца и замещающего текста, например, s(PATTERN)<REPLACEMENT>.
На следующем шаге мы рассмотрим операцию транслитерации.