Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
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";

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

    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 scrutinizing the Monastery: (9)
As of 2015-07-08 07:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (96 votes), past polls