和集合 A∪B
my @array_a = qw/1 2 3 4 5/; my @array_b = qw/3 4 5 6 7/; my %cnt = (); my @array = grep { ++$cnt{$_} == 1 } (@array_a, @array_b);
積集合 A∩B
my @array_a = qw/1 2 3 4 5/; my @array_b = qw/3 4 5 6 7/; my %cnt = (); my @array = grep { ++$cnt{$_} == 2 } (@array_a, @array_b);
差集合 A-B
my @array_a = qw/1 2 3 4 5/; my @array_b = qw/3 4 5 6 7/; my %cnt = (); map { $cnt{$_}-- } @array_b; my @array = grep { ++$cnt{$_} == 1 } @array_a;