#! perl -slw use strict; my $data = do{ local $/; }; 1 while $data =~ m[ DOCUMENTS \n\n ( .*? ) \n\n(?= AUTHOR: ) (?{ print " $^N " }) AUTHOR: ( .*? ) \n\n(?= SUBJECT: ) (?{ print " $^N " }) SUBJECT: ( .*? ) \n\n(?= BODY: ) (?{ print " $^N " }) BODY: ( .*? ) (?: \n\n(?=\d+ \s of ) | $ ) (?{ print " $^N " }) ]xsg; __DATA__ 1 of 10 DOCUMENTS TITLE HERE AUTHOR: __________ SUBJECT: ___________________________ ____________________________________ BODY: ______________________________ ____________________________________ ____________________________________ ____________________________________ 2 of 10 DOCUMENTS TITLE HERE AUTHOR: __________ SUBJECT: ___________________________ ____________________________________ BODY: ______________________________ 3 of 10 DOCUMENTS TITLE HERE AUTHOR: __________ __________________ SUBJECT: ________ BODY: ______________________________ ____________________________________ ____________________________________ ____________________________________ #### TITLE HERE __________ ___________________________ ____________________________________ ______________________________ ____________________________________ ____________________________________ ____________________________________ TITLE HERE __________ ___________________________ ____________________________________ ______________________________ TITLE HERE __________ __________________ ________ ______________________________ ____________________________________ ____________________________________ ____________________________________