An example how I skip on a couple of conditions:
use strict;
my ($inputfile, $outputfile) = @_;
open (OUT, ">$outputfile") || die "could not open $outputfile\n";
open (IN, "<$inputfile") || die "could not open $inputfile\n";
while (<IN>) {
chomp; # no newline
s/^--.*//; # no oracle comments
s/^prompt.*//; # no oracle prompt lines
s/^\s+//; # no leading white
s/\s+$//; # no trailing white
s/\s+/ /; # replace series of white with one spac
+e
next unless length; # anything left?
print OUT $_, "\n";
}
close IN;
close OUT;