##
push @comp, { map { $_ => 1 } @array1 };
####
use strict;
use List::Compare;
my @array1 = qw{ bob larry melon fruit};
my @array2 = qw{ bob larry melon apple};
my array3 = qw{ bob larry fruit apple};
my @comp;
push @comp, [@array1];
push @comp, [@array2];
push @comp, [@array3];
my $lc = List::Compare->new( @comp );
my @intersection = $lc->get_intersection;