#!/usr/bin/perl -w use strict; my @a = qw|a b c d e|; my @b = qw|b c d c i|; my %a = map {$_=>1} @a; my %bank; for(0..$#b){ if(defined($a{$b[$_]})){ $bank{$b[$_]}++; $a{$b[$_]}++; undef $b[$_]; } } print "NEW \@A:\t" . join ',', sort grep { $a{$_}==1 } keys %a; print "\nNEW \@B:\t" . join ',', grep {defined($_)} @b; print "\nINCOMMON:\t" . join ',', keys %bank; 1; =========== C:\Temp>perl shoo.pl NEW @A: a,e NEW @B: i INCOMMON: c,b,d