in reply to
Logical operations on arrays
One option is to use List::Compare:
use strict;
use warnings;
use List::Compare;
my @a = qw(a b c);
my @b = qw(b c d);
print "\@a = @a\n\@b = @b\n\n";
print '@a AND @b = ', arrayANDCompare( \@a, \@b ), "\n\n";
print '@a OR @b = ', arrayORCompare( \@a, \@b );
sub arrayANDCompare {
my ( $a, $b ) = @_;
return List::Compare->new( $a, $b )->get_intersection;
}
sub arrayORCompare {
my ( $a, $b ) = @_;
return List::Compare->new( $a, $b )->get_union;
}
Output:
@a = a b c
@b = b c d
@a AND @b = bc
@a OR @b = abcd