in reply to sorting text into sentences.

perhaps you should take a look at Lingua::EN::Sentence This will handle some common sentence splitting probs like acronyms/abreviations. Something like this may do all you need.
use Lingua::EN::Sentence qw(get_sentences); open FH, "SomeFile.txt" or die "can't open: $!\n"; { local $/; my $all=<FH>; } my $sentences=get_sentences($all); ## Get the sentences.

Looking at your code, I don't think split will work like this (spliting an entire array in one). you will need to foreach through @all and split each element individualy or possibly play some fun and games with map.

my @all=<>; print "all is:\n"; foreach (@all) { print "$_"; foreach (split /([.,;])/, $_) {print "$_\n"} }
With the parenthesis round the split pattern you get the punctuation that split acted on stored in your array too.

From your later description I think you may want to look at splitting on something like [A..Z]\s*(\.|;) and as you are slurping in the entire file and not making use of the line breaks perhaps you want to try

local $/; my $all=<>;
then split $all into the array of lines Cheers,
R.