#!/usr/bin/perl use warnings; use strict; my @array1=('a','2','3','2'); my @array2=('1','2','3','2'); my %in_array2 = map { $_ => 1 } @array2; my @array3 = grep { $in_array2{$_} } @array1; print "common @array3\n"; my %seen; my @unique = grep{!$seen{$_}++} @array3; print "unique @unique\n";