#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use List::MoreUtils 'duplicates'; my (@keys, @values); while (<>) { next if /^\s*$/; # skip empty lines chomp; my ($key, $value) = split /\s+/; push @keys, $key; push @values, $value; } continue { close ARGV if eof; # Not eof()! } my @duplicatedKeys = duplicates @keys; my @duplicatedValues = duplicates @values; print Dumper \@keys, \@values, \@duplicatedKeys, \@duplicatedValues; __END__ $ perl test.pl File1.txt File3.txt $VAR1 = [ 'ID121', 'ID122', 'ID145', 'ID157', 'ID181', 'ID962', 'ID567', 'ID921', 'ID121', 'ID612', 'ID122', 'ID745', 'ID145', 'ID157' ]; $VAR2 = [ 'ABC14', 'EFG87', 'XYZ43', 'TSR11', 'ABC31', 'YTS27', 'POH70', 'BAMD80', 'ABC14', 'FLOW12', 'EFG87', 'KIDP36', 'XYZ43', 'TSR11' ]; $VAR3 = [ 'ID121', 'ID122', 'ID145', 'ID157' ]; $VAR4 = [ 'ABC14', 'EFG87', 'XYZ43', 'TSR11' ];