#!/usr/bin/perl use strict; use warnings; use Inline::Files; my %data; while () { chomp; my (undef, $fragment, undef, $pos) = split /\t/; $data{$pos} = $fragment; } ; # throw away header '300 dG = -62.54 ...' while () { my $pos = (split /\t/)[0]; print "$data{$pos} $pos\n" if $data{$pos}; } __A__ 1-Match: GGTGTTGTATGCCTTTAAA 5 3545 2-Match: GGAAAGTCAAGCCCATCTA 9 3254 3-Match: GTTCTTATTTGCACCTACT 6 180 4-Match: GATGAGGAACAGCAACCTT 5 844 __B__ 300 dG = -62.54 [initially -70.70] gi178893_M23263_rna_300-1 1 G 0 2 0 1 2 A 1 3 0 2 3 A 2 4 0 3 4 U 3 5 0 4 5 U 4 6 0 5 6 C 5 7 0 6 7 C 6 8 0 7 8 G 7 9 34 8 9 G 8 10 33 9 ........ ........ 179 A 178 180 231 179 180 G 179 181 230 180 181 U 180 182 229 181 ........ ........