#!/usr/bin/perl use warnings; use strict; open(KEY, ") { chomp $key; $Chr{$key} = undef; } my %R; while (my $reg = ) { chomp $reg; my @reg_split = split("\t", $reg); push @{$R{$reg_split[0]}}, $reg; } foreach my $key (sort keys %R) { next unless exists $Chr{$key}; for my $out (@{$R{$key}}){ print "$out\n"; } print q{-} x 20, qq{\n}; } close(KEY); close(REG);