#!/usr/local/bin/perl #!/usr/bin/perl use strict; use warnings; sub union(\@\@){ my ($ar, $br) = @_; my %union; $union{$_}++ for (@$ar, @$br); return keys %union; } sub intersection(\@\@){ my ($ar, $br) = @_; my (%union, %intersection); $union{$_}++ && $intersection{$_}++ for (@$ar, @$br); return keys %intersection; } my @a = qw/0 1 2 3 4 5 6 7 8 9/; my @b = qw/0 2 4 6 8 10 12 14 16 18/; local ($, , $\) = (",", "\n"); # to pretty-print print intersection(@a, @b); print union(@a, @b);