open (OUTFILE, "< C:\\Scripts\\TEST\\History21.txt") or die "Could not open source file. $!"; open (NEW_MED, "> C:\\Scripts\\TEST\\History_MED1.txt") or die "Could not open source file. $!"; open (NEW_SUR, "> C:\\Scripts\\TEST\\History_SUR1.txt") or die "Could not open source file. $!"; $count2 = 1; while ($line = ) { @rows = split(/\|\|/, $line); if ($rows[1] =~ m/\[R\]/g) { if ((@var)= $rows[1] =~ m/\](.*?)\[/g) { foreach $var (@var) { if ($var =~ /^\s$/g) { #DO NOTHING SINCE WE ONLY WANT IF THERE IS ANYTHING INSIDE THE 2 R BRACKETS } else { print NEW_MED "$rows[0] || $var\n"; } } } } if ($rows[2] =~ m/\[R\]/g) { if ((@var2)= $rows[2] =~ m/\](.*?)\[/g) { # I AM ASSUMING IT WILL RETURN SIMILAR TO THE PREVIOUS IF STATEMENT FOR ROW1 ABOVE foreach $var2 (@var2) { if ($var =~ /^\s$/g) { #DO NOTHING SINCE WE ONLY WANT IF THERE IS ANYTHING INSIDE THE 2 R BRACKETS } else { print NEW_SUR "$rows[0] || $var2\n"; } } } } $count2++; } close(NEW_MED); close(NEW_SUR);