Oliver Antosch: Umbrüche in Formular umsetzen

Beitrag lesen

$text =~ s/(.{0,10}\w)\s/$1\n/g;

Die 10 steht hier für so-und-so-viele Zeichen minus 1. Der Text würde also umgewandelt
werden, in einen Text mit höchstens 11 Zeichen pro Zeile. Es sein denn es gibt dort ein
Wort, welches länger ist als 11 Zeichen:

123 123456789012345 123 12345 1234

wird zu

123
123456789012345
123 12345
1234

der Ansatz war schon ganz gut, allerdings musste ich es etwas abändern:

$in{text} =~ s/(.{1,80}[a-zA-Z:,0-9öüä\s])\s/$1\n/g;
    $in{text} =~ s/\n\n/\n/g;

die erste Zeile berücksichtigt, das z.B. auch ein Doppelpunkt vorkommen könnte.
Außerdem das eine Zeile nicht bis zum Ende ausgeschrieben sein kann. Der Text
wär somit ok, wenn man das Skript lokal ausführt, schickt man das ganz jedoch
mit sendmail, dann wird aus einer Leerzeile eine doppelte Leerzeile (weiss jemand warum?)
Daher noch  $in{text} =~ s/\n\n/\n/g; um die Doppelleerzeile in eine Einfachleerzeile zu konvertieren.