in reply to Removing extra <br> tags

If the entire body of the paragraph is in a single variable, then I would do the following:

$paragraph =~ s/\n+/<BR>/g; ($paragraph) = $paragraph =~ /(.{1,2000})\s+/;

That last line captures the first 2000 characters (except for newlines), and fails and begins backtracking if a space does not follow. It will backtrack until it finds the space, and thus it won't cut off in the middle of a word.

Hope that helps.

Update: I misread the request. The second regex could be something like the following to meet your needs, so that it won't be longer than 2000 characters but will end at sentence end:

($paragraph) = $paragraph =~ /(.{1,2000}[.!?])/;