Go4Expert

Go4Expert (http://www.go4expert.com/)
-   Perl (http://www.go4expert.com/forums/perl/)
-   -   Common value in three arrays (http://www.go4expert.com/forums/common-value-arrays-t21751/)

terrylau 14Apr2010 08:53

Common value in three arrays
 
Perl newbie hereÖ need some help and suggestions. Iíve searched for many examples but so far itís all for array operation for two arrays. I have three arrays and want to find the common value in the three array and list them out :

Array 1 = {0, 1,2,3,4,5,6,7,8,9}
Array 2 = {1,2,3,4,6,8, 10, 12,14}
Array 3 = {1,2,3,5,7,9, 11,13,15}

I want the output to be something like below:
Code:


              Array 1            Array 2            Array 3
  0          yes                 
  1          yes                  yes                  yes
  2          yes                  yes                  yes
  3          yes                  yes                  yes
  4          yes                  yes                 
  5          yes                                          yes
  6          yes                  yes                 
  7          yes                                          yes
  8          yes                  yes                 
  9          yes                                          yes
  10                                yes                 
  11                                                        yes
  12                                yes                 
  13                                                        yes
  14                                yes                 
  15                                                        yes

The idea is to list out the output as above. Iíve started with something below which I got from another website but got stuck :
Code:


  #!/usr/bin/perl
  use strict;
use warnings;
  my @array1;
my @array2;
my @diff;
my @isect;
my $item;
my %count;
  @array 1 = (0, 1,2,3,4,5,6,7,8,9);
  @array 2 = (1,2,3,4,6,8, 10, 12,14);
  @isect = ( );
@diff = ( );
%count = ( );
  foreach $item (@array1, @array2) { $count{$item}++;}
  foreach $item (keys %count) {
if ($count{$item} == 2) {
push @isect, $item;
} else {
push @diff, $item;
}
}
  print "\nA Array = @array1\n";
  print "\nB Array = @array2\n";
  print "\nIntersect Array = @isect\n";
  print "\nDiff Array = @diff\n\n";

Appreciate the help


All times are GMT +5.5. The time now is 08:02.