, , , " > " , " > " .
, , , :
1: >0
2: >0
1: GAATAGATGTTTCAAATGTACCAATTTCTTTCGATT
2: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40
1: >1
2: 40 40 40 40 40 40 40 40 15 40 40
1: GTTAAGTTATATCAAACTAAATATACATACTATAAA
2: >1
1: >2
2: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 20 40 40 40
1: GGGGCTGTGGATAAAGATAATTCCGGGTTCGAATAC
2: 40 40 40 40 40 40 40 40 40 40 40
1: EOF
2: >2
1: EOF
2: 40 40 40 40 7 40 40 5 40 40 40 40 40 40 40 40 37 13 31 20 15 40 10 11 4
1: EOF
2: 40 8 3 29 10 19 18 40 19 15 5
, , :
1: GAATAGATGTTTCAAATGTACCAATTTCTTTCGATT
2: 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40
1: GGGGCTGTGGATAAAGATAATTCCGGGTTCGAATAC
2: 40 40 40 40 40 40 40 40 40 40 40
, , .
, .
fileIO: {
while( 1 ){
my $seq;
my $qual = q{};
while( 1 ){
$seq = <SEQ>;
last fileIO if not $seq;
last if $seq !~ /^>/;
}
while( 1 ){
my $qual_in = <PRB>;
last fileIO if not $qual_in;
last if $qual_in =~ /^>/ and $qual ne q{};
next if $qual_in =~ /^>/ and $qual eq q{};
$qual .= $qual_in;
}
print "$seq \n $qual \n";
}
}
Update
, , -, . , , , - .
use strict;
use warnings;
sub readUntilNext {
my ($fh) = shift;
my ($output) = shift;
my ($output_buffer) = '';
while (1) {
my $line = <$fh>;
if ( !$line ) {
return 0 if $output_buffer eq q{};
last;
}
if ( $line =~ /^>/ ) {
next if $output_buffer eq q{};
last;
}
chomp($line);
$output_buffer .= $line;
}
$$output .= $output_buffer;
return 1;
}
open my $m, '<', 'a.txt';
open my $n , '<', 'b.txt';
while ( readUntilNext( $m, \my $seq ) && readUntilNext( $n, \my $qual ) ) {
print "$seq\t$qual\n";
}
, , , .
, \my stuff
while( readUntilNext( $m, \my $seq ) ) {
}
my $seq;
while( readUntilNext( $m, \$seq ) ) {
}
, , , ;
:
while( 1 ){
my $seq;
last if not readUntilNext($m, \$seq);
do {
}
}