Beefy Boxes and Bandwidth Generously Provided by pair Networks Joe
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: compare arrays, and list the difference

by roboticus (Canon)
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.


Comment on Re: compare arrays, and list the difference
Select or Download Code
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.

    RIP Neil Armstrong

      BrowserUk:

      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?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (3)
As of 2014-04-20 21:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (487 votes), past polls