Perl-确定一个数组是否是另一个数组的子集

Ada*_*m S 5 perl

我有以下代码。可以isSubset不附加CPAN模块编写简单?

my @possibleNames = ("adam", "chelsea");
my @actualNames = ("adam", "chucky", "chelsea");

sub isSubset {
    my ($littleSet, $bigSet) = @_;
    foreach (@{$littleSet}) {
        return 0 unless ($_ ~~ @{$bigSet});
    }
    return 1;
}

printf("%s\n", (isSubset(\@possibleNames, \@actualNames) ? "yes" : "no"));
Run Code Online (Sandbox Code Playgroud)

yst*_*sth 3

my @possibleNames = ("adam", "chelsea");
my @actualNames = ("adam", "chucky", "chelsea");

my $is_subset = 0==grep !defined, map { @$_{@actualNames}=(1)x@actualNames; delete @$_{@possibleNames} } {};
Run Code Online (Sandbox Code Playgroud)

但说真的,请使用 Array::Utils::array_minus。