Переформатирование абзацев
Проблема
Длина текста не позволяет разместить его в одной строке. Требуется разделить его на несколько
строк без переноса слов. Например, сценарий проверки стиля читает текстовый файл по одному
абзацу и заменяет неудачные обороты хорошими. Замена оборота «применяет функциональные возможности»
словом «использует» приводит к изменению количества символов, поэтому перед выводом абзаца его
придется переформатировать.
Решение
Воспользуйтесь стандартным модулем Text::Wrap для расстановки разрывов строк в нужных местах:
use Text::Wrap;
@OUTPUT = wrap($LEADTAB, $NEXTTAB, @PARA);
Комментарий
В модуле Text::Wrap присутствует функция wrap, которая получает список строк и переформатирует их
в абзац с длиной строки не более $Text::Wrap::columns символов. Мы присваиваем переменной
$columns значение 20; это гарантирует, что ни одна строка не будет длиннее 20 символов.
Перед списком строк функции wrap передаются два аргумента: один определяет отступ первой строки
абзаца, а второй — отступы всех последующих строк.
См. такжеОписание функций
split и
join
Proverte kod v komentariyah gde pro list tam oshibki detskie
Оставить комментарий:
|
|