У меня есть следующий код. Можно ли написать isSubset
без дополнительных модулей CPAN?Perl - определить, является ли массив подмножеством другого массива
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"));
Just [ 'использование массивов :: Utils'] (http://search.cpan.org/~zmij/Array-Utils-0.5/ Utils.pm). Нет причин, по которым вы не можете использовать модули из CPAN. –
'my ($ sub, super) = @_; $ _ ~~ $ super или return 0 для @ $ sub; 1', но это только косметика. Если множество больших или если вы неоднократно проверяете один набор, лучше использовать хеши: '$ _ ~~ $ super' становится' exists $ super -> {$ _} '. Однако работает только строки. – amon
http://stackoverflow.com/questions/2933347/comparing-two-arrays-using-perl –