#!/usr/bin/env perl
use strict;
use warnings;
use autodie;
use Data::Dump;
my @all_order;
{
open my $in2_fh, '<', 'pm_1204589_IN2';
while (<$in2_fh>) {
chomp;
push @all_order, $_;
}
}
for my $range ([0..0], [0..2], [1..3], [3..3]) {
my %wanted = map { $_ => 1 } @all_order[@$range];
{
open my $in1_fh, '<', 'pm_1204589_IN1';
local $/ = "\n>";
while (<$in1_fh>) {
chomp;
substr $_, 0, 1, '' if $. == 1;
my ($head, $seq) = split;
$wanted{$head} = $seq if $wanted{$head};
}
}
print "Range: @$range\n";
dd \%wanted;
}
####
$ cat pm_1204589_IN1
>Z
ABC
>Y
DEF
>X
GHI
>W
JKL
####
$ cat pm_1204589_IN2
W
X
Y
Z
####
Range: 0
{ W => "JKL" }
Range: 0 1 2
{ W => "JKL", X => "GHI", Y => "DEF" }
Range: 1 2 3
{ X => "GHI", Y => "DEF", Z => "ABC" }
Range: 3
{ Z => "ABC" }