#!/usr/bin/perl use 5.14.0; use warnings; use autodie; my @source=(1, 2, 3, 4, 5, 7); my @target=(0, 1, 3, 4, 6); my %count = (); $count{$_} = 1 for @source; $count{$_} |= 2 for @target; my (@not_in_src, @not_in_tgt, @in_both); for (sort keys %count) { push @not_in_tgt, $_ if $count{$_} == 1; push @not_in_src, $_ if $count{$_} == 2; push @in_both, $_ if $count{$_} == 3; } print "Not in source: ", join(", ", @not_in_src), "\n"; print "Not in target: ", join(", ", @not_in_tgt), "\n"; print "In both: ", join(", ", @in_both), "\n";