Please put a "<code>" tag at the beginning of data and/or code, and put "</code>" after the data and/or code. This way, things like line breaks in the data will show up where you put them, and all the characters in your code will display correctly.
Is the long quotation stored in a file, or is it hard-coded into your test script? If the data in a file (e.g. with file name "test.dat"), and the script is written like this (e.g. stored in a file called "test.pl"):
use strict;
while (<>) {
/\bit (.*)[.?!]$/i and print $1,$/;
}
Then you just need to run the script like this:
perl test.pl test.dat
On the other hand, if you are just hard-coding that long string in your script and assigning it to $_ instead of reading it from a file, then you don't want to use the while (<>) loop -- just do the regex match and print.
One last issue: it's not clear whether you expect every end-of-sentence punctuation mark to occur at the end of a line. If the data is like this:
It starts with foo. Then it goes to bar. That's it.
This next line contains nothing that matches.
Do you want your script to print all of the first line as a single string? Or would you rather that it split that up into three sentences and print "starts with foo." then "goes to bar." then "." each on a separate output line?
(updated to fix typos in first paragraph) |