> >True, but what if I change my example such that the srchStr changes to >############################################################### >i = 0 >failed = true >found = false >while true do > i += 1 > puts i > rptFile = "CYPsw00695.rpt" > #the following line is different: > srchStr = "!(/Error Count = [1-9]/ || /Abort/ || /[1-9] error/ || >/fatal/)" > rpt_h = File.open rptFile > puts "after File.open #{rptFile}" if $DEBUG > puts "srchStr is: #{srchStr}" if $DEBUG > while rpt_h.gets do > #puts "while: #$_" if $DEBUG > > if eval srchStr > failed = false > found = true > else > failed = true > break > end #if eval > > end > rpt_h.close >end >########################################################## OK, I ran the above code on Win2K. It ran for 40 iterations and then failed like this: Exception `fatal' at (eval):1 - failed to allocate memory (eval):1: failed to allocate memory (fatal) So, its failing in the eval. Phil