in reply to multiple OR match fails

while(<IN>) { undef ($/); $string=$_;

Because you undef $/ inside the loop that means that the first time through the loop $_ will contain only the first line of the file and the second time through the loop $_ will contain all the rest of the file.

Did you really want to process the file in two chunks like that?

Replies are listed 'Best First'.
Re^2: multiple OR match fails
by bimleshsharma (Beadle) on Jan 31, 2012 at 10:19 UTC

    yes, The input record separator, newline by default. $/ may be set to a value longer than one character in order to match a multi-character delimiter. If $/ is undefined, no record separator is matched, and <FILEHANDLE> will read everything to the end of the current file in one line.