#!/usr/bin/env perl use strict; use warnings; my @array1=(1..5); my @array2=(3..7); my (%union, %sdiff, %sd1, %sd2, %inter); @union{(@array1,@array2)} = (@array1,@array2); %sd1 = %sd2 = %inter = %union; delete @sd1{@array2}; delete @sd2{@array1}; %sdiff = (%sd1,%sd2); delete @inter{keys %sdiff}; print "array1: ", join (" ", @array1), "\n"; print "array2: ", join (" ", @array2), "\n"; print "union: ", join (" ", keys %union), "\n"; print "sdiff: ", join (" ", keys %sdiff), "\n"; print "inter: ", join (" ", keys %inter), "\n";