use strict;
use warnings;
no warnings 'experimental';
$\="\n";
# Наши подопытные множества, представленные в виде массивов.
my @A = (1,1,1,8,8,9,2);
my @B = (2,8,8,8,2,3);
my @C = (4,8,8,8,2,3);
my @D;
# 1. Объединение
@D = keys { map { $_ => undef } @A, @B, @C };
print "Объединение: @D";
# 2. Пересечение
@D = keys { map { $_ => undef } grep { $_ ~~ @B and $_ ~~ @C } @A };
print "Пересечение: @D";
# 3. Разность
@D = keys { map { $_ => undef } grep { not $_ ~~ @B and not $_ ~~ @C } @A };
print "Разность: @D";