#!/usr/bin/perl use warnings; use strict; my %seen; for my $file (@ARGV) { open my $FH, '<', $file or die $!; while (<$FH>) { chomp; s/,\s*$//; push @{ $seen{$_} }, $file; } } for my $string (grep 1 == @{ $seen{$_} }, keys %seen) { print "$string unique in $seen{$string}[0]\n"; } #### $ perl 1077045.pl [123].txt cat unique in 1.txt dog unique in 3.txt rat unique in 2.txt