#!/usr/bin/perl use strict; my $pont = qr{[.!?]+}; ## punctuation my $abrev = qr{\b(?:Pr|Dr|Mr|[A-Z])\.}; ## abbreviations $/ = ""; while(<>) { chomp; ## for each paragraph, s/\h*\n\h*/ /g; ## remove \n s/($pont)\h+(\S)/$1\n$2/g; ## punctuation+space s/($abrev)\n/$1 /g; ## undo \n after abbreviations print "$_\n"; }