我有两个数组,我想找到一个数组但不是另一个数组的元素:
例如:
@array1 = ("abc","cde","fgh","ijk","lmn") @array2 = ("abc","lmn")
我需要最终:
@array3 = ("cde","ijk")
解决方法
将第二个数组的元素放入散列中,以便有效地检查特定元素是否在其中,然后过滤第一个数组以查找那些不在第二个数组中的元素:
my %array2_elements; @array2_elements{ @array2 } = (); my @array3 = grep ! exists $array2_elements{$_},@array1;