Arrays 如何在@array2而不是@array1中查找值

Arrays 如何在@array2而不是@array1中查找值,arrays,algorithm,perl,Arrays,Algorithm,Perl,可能重复: 如何打印存在于@array2中但不存在于@array1中的值?例如,假设: @array1 = qw(1234567 7665456 998889 000909); @array2 = qw(1234567 5581445 998889 000909); 输出应为: 5581445 doesn't exist in array1 另一种方式是: 其结果正是人们所期望的: 5581445 is in @array2 but not in @array1. 无需编译您自己的数组条

可能重复:

如何打印存在于
@array2
中但不存在于
@array1
中的值?例如,假设:

@array1 = qw(1234567 7665456 998889 000909);
@array2 = qw(1234567 5581445 998889 000909);
输出应为:

5581445 doesn't exist in array1
另一种方式是:

其结果正是人们所期望的:

5581445 is in @array2 but not in @array1.

无需编译您自己的数组条目表(自5.10起):

仅供参考,这在集合论中被称为“相对补码”(如果你只想要单向)或“对称差”(如果你想要双向)。这个问题似乎是重复的:
use strict;
use warnings;
use Array::Utils qw(array_minus);

my @array1= qw(1234567 7665456 998889 000909);
my @array2= qw(1234567 5581445 998889 000909);


my @not_in_a1=array_minus(@array2,@array1);

if(@not_in_a1)
{
    foreach(@not_in_a1)
    {
        print "$_ is in \@array2 but not in \@array1.\n";
    }
}
else
{
    print "Each element of \@array2 is also in \@array1.\n";
}
5581445 is in @array2 but not in @array1.
print "$_  doesn't exist in array1\n" foreach grep { not $_ ~~ @array1 } @array2;