#!/usr/bin/perl use strict; use warnings; use File::Slurp qw(read_file); use Array::Utils qw(intersect); my $sfile = shift; my $dbfile = shift; my @series = map {/^(rs\d{1,18})$/} read_file $sfile; my @dbpairs = map {/\s+(rs\d{1,18})\s+/} read_file $dbfile; my @chosen = intersect @series, @dbpairs; foreach my $p (@chosen){ print "$p\n"; }