use strict; use warnings; @array1 = (c,d,e); @array2 = (e,f,g,h); @array3 = (a,b,d); @array4 = (s,g,h,j,k,l) my (%union, %intersect); foreach my $e (@array1, @array2) { $union{$e}++ && $intersect{$e}++ } my @intersect = sort keys %intersect; print FILEOUT "@intersect\n"; #prints intersecting words print FILEOUT scalar @intersect; #### foreach(1..4) { my (%union, %intersect); foreach my $e (@title1, @{"title$_"}) { $union{$e}++ && $intersect{$e}++ } my @intersect = sort keys %intersect; print FILEOUT "@intersect\n"; print FILEOUT scalar @intersect; print FILEOUT "\n"; } #### array1 : array2 : array3 : array4 array1: 10 : 5 : 17 : 2 array2: 5 : 15 : 8 : 1 array3: 17 : 8 : 14 : 6 array4: 2 : 1 : 6 : 19