use strict;
use warnings;
use Data::Dumper;
use Fatal qw[open];
my %key;
open my $data, '<', 'data.txt';
while(<$data>) {
chomp;
$key{$_} = [];
}
my %line;
open my $all, '<', 'all.txt';
while(<$all>) {
chomp;
$line{key} = $_;
$line{seq} = <$all>; # read the sequence
chomp $line{seq};
my ($key) = ($line{key} =~ /(Contig\d*)/);
if(exists $key{$key}) {
push @{$key{$key}}, $line{seq};
}
}
print Dumper(\%key) ."\n";
####
$VAR1 = {
'Contig25396' => [
'GGGATCTTTGGACGAAGGGGGGAAAAAGATGTCAACTTTAAGCATTCCAC CAATGCTTACTTCCCCTAGAGATGATGCCATTCAACTGTACAAGGCTTTC AAGGGATTTGGATGTGACACTTCTGCAGTAATCCATATCTTAGCTCGTCG'
],
'Contig25381' => [
'GGACGAGATTTAACGACATCCATAAGCAACTCTGCTAATCATTCGATCTG CTTGGAGGTGTTTTTCCCCCATTTCCCTTAACCATGTCTCAGACTGTGGT'
],
'Contig25469' => [
'GGCTCTCTACCTATCTGTCTCTCTCTACCTCTCTCTCCTTTCACGCACAC'
]
};
####
use strict;
use warnings;
use Data::Dumper;
use Fatal qw[open];
my %key;
open my $data, '<', 'data.txt';
while(<$data>) {
chomp;
$key{$_} = 1;
}
my %line;
open my $all, '<', 'all.txt';
open my $out, '>', 'requery.txt';
while(<$all>) {
chomp;
$line{key} = $_;
$line{seq} = <$all>; # read the sequence
chomp $line{seq};
my ($key) = ($line{key} =~ /(Contig\d*)/);
if(exists $key{$key}) {
print $out join("\n", $line{key}, $line{seq}) . "\n";
}
}