При замене часто бывает нужно обеспечить правильный регистр символов в заменяющем слове (нижний или верхний в зависимости от ситуации). Задача легко решается в Perl при помощи служебных последовательностей с обратной косой чертой. Комбинация \U преобразует все последующие символы к верхнему регистру:
$_ = "I saw Barney with Fred.";
s/(fred|barney)/\U$1/gi; # $_ теперь содержит "I saw BARNEY with FRED."
Аналогичная комбинация \L обеспечивает преобразование к нижнему регистру. Продолжение предыдущего фрагмента:
s/(fred|barney)/\L$1/gi; # $_ теперь содержит "I saw barney with fred."
По умолчанию преобразование распространяется на остаток (заменяющей) строки; также можно вручную отменить переключение регистра комбинацией \E:
s/(\w+) with (\w+)/\U$2\E with $1/i; # $_ содержит "I saw FRED with barney."
При записи в нижнем регистре (\l и \u) эти комбинации влияют только на следующий символ:
s/(fred|barney)/\u$1/ig; # $_ теперь содержит "I saw FRED with Barney."
Они даже могут использоваться в сочетании друг с другом. Например, объединение \u с \L означает: «все в нижнем регистре, но первая буква в верхнем регистре»:
s/(fred|barney)/\u\L$1/ig; # $_ теперь содержит "I saw Fred with Barney."
Хотя сейчас мы рассматриваем переключение регистра в связи с заменой, эти комбинации работают в любой строке, заключенной в кавычки:
print "Hello, \L\u$name\E, would you like to play a game?\n";