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"):
Then you just need to run the script like this:use strict; while (<>) { /\bit (.*)[.?!]$/i and print $1,$/; }
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.perl test.pl test.dat
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:
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?It starts with foo. Then it goes to bar. That's it. This next line contains nothing that matches.
(updated to fix typos in first paragraph)
In reply to Re^3: Help please
by graff
in thread Help please
by Stud_Perl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |