Задача:
Есть неопределенной длины длинная строка. (ну и сказал =). Надо разбить эту строку на несколько.
Решаем:
Есть 3 варианта решения проблемы длинной строки.
1. Использовать регэкспы.
2. Написать рекурсивную функцию
3. Использовать средства *никсов
Первый пункт конечно хорошо, но если с регэкспами туго, то он совсем не годится.
Второй пункт тоже ничего, но код получится длинный и долгий.
А третий пункт соответсвует unix-way: зачем придумывать своё, если можно использовать уже сделанное?
Вот решение:
@a = `echo $txt2 | fold -s -w $textmax`
Получаем в массиве @a строки, разбитые по пробелам, в примерно нужной нам позиции.
Рекомендую почитать “fold —help” как минимум
P.S. Может кто подскажет решение регепспами?
P.S. #2 Решил добавить пример:
#!/usr/bin/perl
$txt2="123456 7890qwer tyuiop 12345678901";
$textmax = 10;@a = `echo $txt2 | fold -s -w $textmax`; # массив с разбитой фразой
chomp(@a); # удаляем переводы строк
$txt3 = "";
foreach (@a) { # перебираем массив и формируем выходную строку
$txt3 = $txt3 . $_ . "
";
};
print "$txt3\n";
Популярность: 16%
ROM
RSS Записей
Поддержи сайт!

