Forum Webscript.Ru

Программирование => Perl => Тема начата: Yuraz от 09 Декабря 2002, 18:33:21

Название: как после 80 символов вставить перевод каретки?
Отправлено: Yuraz от 09 Декабря 2002, 18:33:21
Знатоки, помогите советом, есть переменная, необходимо её "порезать" на 80 символов в строке, или, если можно, усложню задачу, по границе слова, не вмещающего за 80-ти символьный рубеж.
Название: как после 80 символов вставить перевод каретки?
Отправлено: YA от 09 Декабря 2002, 23:18:22
push @str,$1 while $text=~s/\\s+(.{1,80})\\s+//;
Название: как после 80 символов вставить перевод каретки?
Отправлено: Yuraz от 10 Декабря 2002, 02:19:24
ух, ты, спасибо YA , сейчас испытаю.
Название: как после 80 символов вставить перевод каретки?
Отправлено: Ardzhan от 10 Декабря 2002, 13:54:57
$text=~s/(\\S{80})/$1 /g; - вставит пробел. Я так понимаю, что тебе надо избежать горизонтальной прокрутки в гостевой(форуме итд), а браузер переносит по пробелам.
Название: как после 80 символов вставить перевод каретки?
Отправлено: YA от 10 Декабря 2002, 15:27:06
[OFF]Ardzhan, вопрос предполагал более корректное решение задачи (см. выше).[/OFF]
Название: как после 80 символов вставить перевод каретки?
Отправлено: YA от 10 Декабря 2002, 17:15:11
Поправлю сам себя. Во-первых, немного перемудрил: естественно, никой push здесь не нужен. А во-вторых стоит добавить "\\S" чтобы исключить возможный захват пробелов в конце - немного корректнее будет.

@str=$text=~/\\s+(.{1,79}\\S)\\s+/g;

Кстати, "слова" длиннее 80 символов просто будут выкидываться. Если это плохо, скажи - поправим ;)