### Re: compare arrays, and list the difference

by roboticus (Chancellor)
 on Oct 03, 2012 at 11:08 UTC ( #997031=note: print w/replies, xml ) Need Help??

in reply to compare arrays, and list the difference

lza:

You can't have looked very hard for the answer, as it's a commonly-asked question. Read perldoc perlfaq4.

Update: I was probably expecting a bit much in thinking that beginning programmers would be able to adapt the code in perlfaq4 "How do I compute the difference of two arrays? How do I compute the intersection of two arrays". As pennance, here's a simple adaptation:

```#!/usr/bin/perl
use 5.14.0;
use warnings;
use autodie;

my @source=(1, 2, 3, 4, 5, 7);
my @target=(0, 1, 3, 4, 6);
my %count = ();

\$count{\$_} = 1 for @source;
\$count{\$_} |= 2 for @target;

my (@not_in_src, @not_in_tgt, @in_both);

for (sort keys %count) {
push @not_in_tgt, \$_ if \$count{\$_} == 1;
push @not_in_src, \$_ if \$count{\$_} == 2;
push @in_both,    \$_ if \$count{\$_} == 3;
}

print "Not in source: ", join(", ", @not_in_src), "\n";
print "Not in target: ", join(", ", @not_in_tgt), "\n";
print "In both: ", join(", ", @in_both), "\n";

...roboticus

When your only tool is a hammer, all problems look like your thumb.

Replies are listed 'Best First'.
Re^2: compare arrays, and list the difference
by BrowserUk (Pope) on Oct 03, 2012 at 11:17 UTC

Which of FAQ4 answers the OPs question?

With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

It seems that "How do I compute the difference of two arrays? How do I compute the intersection of two arrays?" gives the essential information. Perhaps my expectation that it's a simple step from the FAQ to this question is a bit much?

In any case, since it's not an exact match to the question, I shouldn't have said that it's a FAQ.

...roboticus

When your only tool is a hammer, all problems look like your thumb.

Re^2: compare arrays, and list the difference
by iza (Monk) on Oct 04, 2012 at 09:13 UTC

it's the faq I was referring to in my question

I didn't know the \$count{\$_} |= 2 for @target; trick - I like it, thanks !

Create A New User
Node Status?
node history
Node Type: note [id://997031]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (4)
As of 2018-02-18 09:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
When it is dark outside I am happiest to see ...

Results (253 votes). Check out past polls.

Notices?