#!/usr/bin/perl -l use strict; use warnings; my @file1=qw/foo bar baz/; my @file2=qw/fred bar barney/; my %saw; $saw{$_}=1 for @file1; $saw{$_}.=2 for @file2; my %comm; push @{ $comm{$saw{$_}} }, $_ for keys %saw; print <<"EOT" \@file1 only: (@{ $comm{1} }) \@file2 only: (@{ $comm{2} }) common: (@{ $comm{12} }) EOT __END__