Вас волнует, если и пункт b, что не в a?То, как вы это сформулировали, может иметь больше элементов, чем а.Также вам необходимо указать, что происходит, когда элемент дублируется в массиве.Вот некоторый код, который находит, есть ли хотя бы один из каждого элемента в a в b:
#!/usr/bin/perl
use strict;
use warnings;
sub all_in_second {
my ($first, $second) = @_;
my %in_second = map { $_ => 1 } @$second;
for my $item (@$first) {
return 0 unless $in_second{$item};
}
return 1;
}
my @a = (1, 2, 3, 3, 4);
my @b = (1, 2, 3, 4, 5);
print all_in_second(\(@a, @b)) ? "true" : "false", "\n";
@a = (1, 2, 3, 3, 6);
@b = (1, 2, 3, 4, 5);
print all_in_second(\(@a, @b)) ? "true" : "false", "\n";