"Guy N. Hurst" <gnhurst / hurstlinks.com> writes: > >>> > To determine pass/fail, there is a string in the > file (which is the srchStr in the example above) that is an expression > composed of regex's and logical operators, like: > "!(/Error Count = [1-9]/ || /Abort/ || /[1-9] error/ || /fatal/)" > <<< > > > So you see, the string is in the file. Since it is pre-existing, > he can't be told to do it otherwise. This is a legacy code issue ;-) No, but we can suggest he do it differently :) I haven't performance tested this, but it does avoid the eval each time around the loop. It uses the proof-of-concept eregex package distributed with the Ruby source: require "eregex" pat = "/a/ | /b/" matcher = eval "proc {|str| str =~ " + pat + "}" while line = gets if matcher.call line puts line end end Regards Dave