Alan C. wrote: > Hello, > > I figured out how to substitute. But I need howto help as I didn't > know how to print out my desired matched items. Thanks! > > Instead of the substitution, I want to match and keep. In other > words, I want to extract and keep/print <comment>up to the blank line > > so that the output will be: > > <comment>semester of 2002. > involvement began in the Spring of 2001. > requesting and obtaining a regarding my > > ---begin source file--- > with a matter that consumed or occupied a > during the fall <comment>semester of 2002. > involvement began in the Spring of 2001. > requesting and obtaining a regarding my > > There were several reports to review. > to and continued during the fall semester > ----end source file--- > > #!/perl/bin/perl -w > undef $/; # Enter "file slurp" mode. > $text = <>; # This file/selection slurped into the scalar > for ($text =~ s/<comment>.*\n\n/<<here>>\n\n\n\n/) { > print $text; > }
Hi Alan. You can do it this way if you want, by capturing sequences in the regex. $text =~ s/(<comment>.+?)\n\n/; print $1; but this is exactly the sort of thing the scalar range operator was meant for: @ARGV = 'source.txt'; while (<>) { next unless (my $seq = (/<comment>/ .. /^$/)); if ($seq == 1) { s/^.+(?=<comment>)// } print; } Cheers, Rob -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]