Just another Perl shrine PerlMonks

### 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";
[download]```

...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 !

Log In?
 Username: Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://997031]
help
Chatterbox?
 [marioroy]: Well, that's why there must be angels around, invisible or not. [marioroy]: Lady_Aleena yes, ladder. [marioroy]: Corion, no not intentionally. not at all. [Lady_Aleena]: /ne tries to decide whther or not to take a hammer to hubby's alarm clock. [Lady_Aleena]: He never hears it. [marioroy]: Back in HighSchool, I came late to Gym class. There was a fellow who was picked last, no team wanted him for racketball. So it was us two against everybody. I looked at him in the eye and said to let your body loose and let the powers to be help us win. [marioroy]: We made it all the way to the end. The expience was magical. I not good at sports. Someone or thing was there.

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (12)
As of 2017-05-29 08:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
My favorite model of computation is ...

Results (192 votes). Check out past polls.