in reply to Re: optimal way of comparing 2 arrays
in thread optimal way of comparing 2 arrays

Hi Blazar,
No duplicates in these arrays. All values are unique.
thanks
narashima
  • Comment on Re^2: optimal way of comparing 2 arrays

Replies are listed 'Best First'.
Re^3: optimal way of comparing 2 arrays
by blazar (Canon) on Oct 20, 2005 at 15:00 UTC
    Then the solution above may be simplified to:
    #!/usr/bin/perl -l use strict; use warnings; my @file1=qw/foo bar baz/; my @file2=qw/fred bar barney/; my %saw; $saw{$_}++ for @file1, @file2; print <<"EOT" \@file1 only: (@{[ grep $saw{$_}==1, @file1 ]}) \@file2 only: (@{[ grep $saw{$_}==1, @file2 ]}) common: (@{[ grep $saw{$_}==2, @file2 ]}) EOT __END__
    or even, using modulo-2 math, but more obscurely:
    #!/usr/bin/perl -l use strict; use warnings; my @file1=qw/foo bar baz/; my @file2=qw/fred bar barney/; my %saw; $saw{$_} ^= 1 for @file1, @file2; print <<"EOT" \@file1 only: (@{[ grep $saw{$_}, @file1 ]}) \@file2 only: (@{[ grep $saw{$_}, @file2 ]}) common: (@{[ grep !$saw{$_}, @file2 ]}) EOT __END__