use warnings; use strict; my $SPACER = "\n\n"; while (my $line = ) { $line =~ s|^\s+||; ## trim leading whitespace $line =~ s|\s+$||; ## trim trailing whitespace $line =~ s|([.?!]+)\s*|$1$SPACER|g; ## break at [.?!] $line =~ s|([a-z])([A-Z])|$1$SPACER$2|g; ## break at camelCase print $line . $SPACER; }