sub array_intersect {
my ($arrays) = @_;
+ if (!ref($arrays->[0])) {
+ $arrays = [ grep { ref($_) eq 'ARRAY' } @_ ];
+ }
+
return [] if scalar(@$arrays) == 0;
return $arrays->[0] if scalar(@$arrays) == 1;
foreach my $element (keys %count) {
push @$return_arr, $element if $count{$element} > 1;
}
+ last if scalar(@$return_arr) == 0; # empty intersection, early exit
}
return $return_arr;