while ($line = ) { if ($line =~ /WNT/ || $line =~ /UNX/) { print "$line\n"; } if ($flag) { if ($target_db ne 'sql') { next if ($line =~ /$target_db/i); } else { next if ($line =~ /informix/i || $line =~ /oracle/i) } print $FH "$line"; if ($line =~ /$target_os/) { undef $flag; next; } } if ($line =~ /UNX/ || $line =~ /WNT/ || $line =~ /COMPONENT/) { if(!(defined $flag)) { $flag = 1; print $FH "$line"; } } }