на главнуюВсе эхи RU.PERL
войти ?

разбивка длинной строки

От Stas Mishchenkov (2:460/5858) к Ruslan Suleimanov

В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)


Hi, Ruslan!

29 авг 22 01:15, Ruslan Suleimanov -> Nil A:

NA>> Но, говорят можно заюзать готовый Text::Wrap

NA>> === BEGIN ===
NA>> use strict;
NA>> use warnings;
NA>> use 5.010;

NA>> my $text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit,
NA>> sed do eiusmod tempor incididunt ut labore

NA>> use Text::Wrap qw(wrap);
NA>> local $Text::Wrap::columns = $max;
NA>> say wrap('', '', $text);
NA>> === END ===

RS> да Text::Wrap тошо надо но он обрезает текст конкретно по заданому ему
RS> количеству символов, а надо чтобы еще опирался на пробелы или запятые если
RS> есть они в пределах +-75 символов. Как вариант по символьно загнать в
RS> массив и дальше высчитывать количество символов и соединять их потом
RS> @array=split(//,$text); Но это будет долго и ресурсоемко для слабой
RS> машины..

RTFM!

It is possible to control which characters terminate words by modifying $Text::Wrap::break. Set this to a string such as '[\s:]' (to break before spaces or colons) or a pre-compiled regexp such as qr/[\s']/ (to break before spaces or apostrophes). The default is simply '\s'; that is, words are terminated by spaces. (This means, among other things, that trailing punctuation such as full stops or commas stay with the word they are "attached" to.) Setting $Text::Wrap::break to a regular expression that doesn't eat any characters (perhaps just a forward look-ahead assertion) will cause warnings.
https://perldoc.perl.org/Text::Wrap

Have nice nights.
Stas Mishchenkov.

--- Не откладывайте на завтра - кладите на всё уже сегодня.
* Origin: Lame Users Breeding. Simferopol, Crimea. (2:460/5858)

Ответы на это письмо:

From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку

From: Username
Или коротким

FGHI-url этого письма: area://RU.PERL?msgid=2:460/5858+630c77d5