You mean something like this?
while(<INFILE>){ push @matches,$_ =~ /(silly)/; } foreach(@matches){ print $_."\n"; } -----Original Message----- From: Harry Putnam [mailto:[EMAIL PROTECTED]] Sent: Friday, September 06, 2002 4:18 PM To: [EMAIL PROTECTED] Subject: print only what a regex actually hits Hope this isn't too often repeated question with glaringly obvious answer: How to print only what a regex hits from a file, not the whole line. IMPORTANT: I don't want techniques involving call back (remembered) operators and parens, I know how to piece those together for simple things like the file below. Is there not a straight forward way to make perl print only what a regex sees? I'm thinking of someting along the line of gnu awk (gawks) ability to do it, as in defining RS (record separator) to a regex then printing its content which appears in the builtin RT. (example of awk below this example file) Example file: cat file a line of print a line of text a line of blab a silly line of print a line of text a silly line of blatterscat a line of nonsense a line of pure intellect What perl code will go thru this file and print only what is hit by regex /silly/? Using the awk I mentioned and barring odd blanks one gets from redefining the RS: awk 'BEGIN{RS="silly"}{print RT}' file silly silly <blank line> -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]