Почему бы не использовать такой модуль, как Lingua :: EN :: Sentence ? Это позволяет легко получить довольно хорошие предложения из произвольного английского текста.
#!perl
use strict;
use warnings;
use Lingua::EN::Sentence qw( get_sentences );
my $text = <<END;
exclaimed Wade. Indeed, below them were villages, of crude huts made of timber and stone and mud. Rubble work walls, for they needed little shelter here, and the people were but savages.
asked Arcot, his voice a bit unsteady with suppressed excitement.
replied Morey without turning from his station at the window. Below them now, less than half a mile down on the patchwork of the Nile valley, men were standing, staring up, collecting in little groups, gesticulating toward the strange thing that had materialized in the air above them.
END
my $sentences = matching_sentences( qr/^[^a-z]/, $text );
print map "$_\n", @$sentences;
sub matching_sentences {
my $re = shift;
my $text = shift;
my $s = get_sentences( $text );
@$s = grep /$re/, @$s;
return $s;
}
Результаты:
Indeed, below them were villages, of crude huts made of timber and stone and mud.
Rubble work walls, for they needed little shelter here, and the people were but savages.
Below them now, less than half a mile down on the patchwork of the Nile valley, men were standing, staring up, collecting in little groups, gesticulating toward the strange thing that had materialized in the air above them.