Как можно обернуть строки до 45 символов в программе Perl? - PullRequest
3 голосов
/ 14 октября 2010

У меня есть текст, который я пишу в программе Perl CGI:

$text = $message;
@lines = split(/\n/, $text);
$lCnt .= $#lines+1;
$lineStart = 80;
$lineHeight = 24;

Я хочу принудительно вернуть после 45 символов.Как мне это сделать здесь?

Заранее спасибо за помощь.

Ответы [ 3 ]

13 голосов
/ 14 октября 2010

Посмотрите на ядро ​​ Текст :: Wrap Модуль:

use Text::Wrap;
my $longstring = "this is a long string that I want to wrap it goes on forever and ever and ever and ever and ever";
$Text::Wrap::columns = 45;
print wrap('', '', $longstring) . "\n";
1 голос
/ 15 октября 2010

Поскольку Text::Wrap по какой-то причине не работает для OP, вот решение с использованием регулярного выражения:

my $longstring = "lots of text to wrap, and some more text, and more "
               . "still.  thats right, even more. lots of text to wrap, "
               . "and some more text.";

my $wrap_at = 45;

(my $wrapped = $longstring) =~ s/(.{0,$wrap_at}(?:\s|$))/$1\n/g;

print $wrapped;

, которое печатает:

lots of text to wrap, and some more text, and 
more still.  thats right, even more. lots of 
text to wrap, and some more text.
1 голос
/ 14 октября 2010

Оформить Текст :: Wrap .Это будет делать именно то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...