Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Difference between two arrays - is there a better way?

by SimonSaysCake (Beadle)
on Dec 04, 2014 at 16:57 UTC ( #1109262=note: print w/replies, xml ) Need Help??


in reply to Difference between two arrays - is there a better way?

This one-liner (versus answers with hashes and inspired by another answer) is working for me but has not been very rigorously tested (as run on AS Perl 5.16.3):

@foo = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10); @bar = (0, 1, 2, 5, 7, 9, 11, 12, 13, 14); my @diff = grep {my $baz = $_; ! grep($_ == $baz, @bar)} @foo; print join(",", @diff); Gives: 3,4,6,8,10

Switch the lists around in the nested greps to go from being "in foo but not also bar" to "in bar but not also foo".

-Simon

Replies are listed 'Best First'.
Re^2: Difference between two arrays - is there a better way?
by Anonymous Monk on Jan 05, 2015 at 09:36 UTC
    wow this is mind-bending! can you please go through it in detail?
      @cities = (qw(London Oslo Paris Amsterdam Berlin )); @visited = (qw(Berlin Oslo)); say "Still need to visit:", grep { ! ({ $_, 0 } ~~ @visited) } @cities;
Re^2: Difference between two arrays - is there a better way?
by Anonymous Monk on Nov 24, 2016 at 12:01 UTC
    What if the 2 lists are array of hashes?

      Then I recommend you adapt the concept in perlfaq4 to your situation.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1109262]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2019-10-18 16:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?