gudn tach!
Wenn String länger ist als 20 Zeichen, dann soll er den Satz noch beenden, bevor er abschneidet.
$str=~s/^(.{1,19}(?:$|.|[^.]+)).*/$1/;
max. 19 beliebige zeichen, gefolgt von einem der drei folgenden dinger:
a) stringende (abschliessender zeilenumbruch erlaubt)
b) punkt
c) beliebig langer string, der aus nicht-punkten besteht
und schliesslich dem abzuschneidenen rest.
klar ist, dass hier keine ueberpruefung erfolgt, ob bspw. der punkt hinter abkuerzungen ein satz-ende darstellt oder nicht. ebenso gibt es ja noch weitere satz-ende-zeichen wie z.b. ?, !, ... etc.
prost
seth