$ cat pm_1206312_in1
ID121 ABC14
ID122 EFG87
ID145 XYZ43
ID157 TSR11
ID181 ABC31
ID962 YTS27
ID567 POH70
ID921 BAMD80
####
$ cat pm_1206312_in2
ID111 RET61
ID157 TSR11
ID181 ABC31
ID962 YTS27
ID452 FYU098
ID121 ABC14
ID122 EFG87
####
$ cat pm_1206312_in3
ID121 ABC14
ID612 FLOW12
ID122 EFG87
ID745 KIDP36
ID145 XYZ43
ID157 TSR11
####
$ cat pm_1206312_in25
ID122 EFG87
ID809 EYE24
ID157 TSR11
ID921 BAMD80
ID389 TOP30
ID121 ABC14
####
#!/usr/bin/env perl
use strict;
use warnings;
use autodie;
my @files = glob 'pm_1206312_in*';
my %uniq;
{
open my $fh, '<', shift @files;
while (<$fh>) {
my ($k, $v) = split;
$uniq{$k} = $v;
}
}
for my $file (@files) {
my %data;
open my $fh, '<', $file;
while (<$fh>) {
my ($k, $v) = split;
$data{$k} = $v;
}
for (keys %uniq) {
delete $uniq{$_} unless exists $data{$_} and $uniq{$_} eq $data{$_};
}
}
printf "%s %s\n", $_, $uniq{$_} for sort keys %uniq;
####
ID121 ABC14
ID122 EFG87
ID157 TSR11