Which might be something along the lines of:
my $flag = 0 ;
my $scaffold ;
my $enumerator ;
while (my $fastaline=<FILE>) {
if ($fastaline=~ m/^>(\S*)/) {
$scaffold = $1 ;
$enumerator = 1 ;
$flag = 1 ;
}
elsif ($fastaline =~ m/[ACGT]/) {
if ($flag) {
print WORKFILE ">$scaffold.$enumerator\n" ;
$enumerator++ ;
$flag = 0 ;
} ;
print WORKFILE $fastaline ;
}
else {
$flag = 1 ;
} ;
} ;
NB: this is not checking that the input is well formed: (a) it accepts any line that contains at least one
[ACGT] as being a line to keep; (b) it does not check that the lines being dropped are all
N; (c) it does not check the exact form of
>scaffold lines; (d) it does not check that at least one
ACGT line follows each
>scaffold line; ... If the input is 100% trusted, that's fine... (if 100% trustworthy input isn't an oxymoron).