Perl. Библиотека программиста

Строки

Работа с подстроками

Требуется получить или модифицировать не целую строку, а лишь ее часть. Например, вы прочитали запись с фиксированной структурой и теперь хотите извлечь из нее отдельные поля.

Выбор значения по умолчанию

Требуется закрепить за скалярной переменной значение по умолчанию, но лишь в том случае, если оно не было задано ранее. Довольно часто требуется, чтобы стандартное значение переменной жестко кодировалось в программе, но его можно было переопределить из командной строки или переменной окружения.

Перестановка значений без использования временных переменных

Требуется поменять значения двух скалярных переменных, но вы не хотите использовать временную переменную.

Преобразование между символами и ASCII-кодами

Требуется вывести код, соответствующий некоторому символу в кодировке ASCII, или наоборот — символ по ASCII-коду.

Посимвольная обработка строк

Требуется последовательно обрабатывать строку по одному символу.

Обратная перестановка слов или символов

Требуется изменить порядок символов или слов в строке на противоположный.

Расширение и сжатие символов табуляции

Требуется преобразовать символы табуляции в строке в соответствующее количество пробелов, или наоборот. Преобразование пробелов в табуляцию сокращает объем файлов, имеющих много смежных пробелов. Преобразование символов табуляции в пробелы может понадобиться при выводе на устройства, которые не понимают символов табуляции или считают, что они находятся в других позициях.

Расширение переменных во входных данных

Имеется строка, внутри которой присутствует ссылка на переменную: You owe $debt to me.
Требуется заменить имя переменной $debt в строке ее текущим значением.

Преобразование регистра

Строку с символами верхнего регистра необходимо преобразовать в нижний регистр, или наоборот.

Интерполяция функций и выражений в строках

Требуется интерполировать вызов функции или выражение, содержащиеся в строке. По сравнению с интерполяцией простых скалярных переменных это позволит конструировать более сложные шаблоны.

Отступы во встроенных документах

При использовании механизма создания длинных строк (встроенных документов) текст должен выравниваться вдоль левого поля; в программе это неудобно. Требуется снабдить отступами текст документа в программе, но исключить отступы из окончательного содержимого документа.

Переформатирование абзацев

Длина текста не позволяет разместить его в одной строке. Требуется разделить его на несколько строк без переноса слов. Например, сценарий проверки стиля читает текстовый файл по одному абзацу и заменяет неудачные обороты хорошими. Замена оборота «применяет функциональные возможности» словом «использует» приводит к изменению количества символов, поэтому перед выводом абзаца его придется переформатировать.

Служебные преобразования символов

Некоторые символы выводимой строки (апострофы, запятые и т. д.) требуется преобразовать к специальному виду. Предположим, вы конструируете форматную строку для sprintf и хотите преобразовать символы % в %%.

Удаление пропусков в обоих концах строки

В полученную строку могут входить начальные или конечные пропуски. Требуется удалить их.

Анализ данных, разделенных запятыми

Имеется файл данных, поля которого разделены запятыми. Однако в полях могут присутствовать свои запятые (находящиеся внутри строк или снабженные служебными префиксами). Многие электронные таблицы и программы для работы базами данных поддерживают списки полей, разделенных запятыми, в качестве стандартного формата для обмена данными.