in reply to seperating blocks of file content in an array

Assuming the "text" lines are the headers and always look that way:
my @sentence = do { local $/; open my $fh, "<", $filename; split /(?=^>text \d+$)/m, <$fh>; };

Makeshifts last the longest.