Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Answer: How can I find the union/difference/intersection of two arrays?

by chromatic (Archbishop)
on Mar 29, 2000 at 01:07 UTC ( #6368=categorized answer: print w/replies, xml ) Need Help??

Q&A > arrays > How can I find the union/difference/intersection of two arrays? - Answer contributed by chromatic

This version works. :)
my @simpsons=("homer","bart","marge","maggie","lisa"); my @females=("lisa","marge","maggie","maude"); my %simpsons=map{$_ =>1} @simpsons; my %females=map{$_=>1} @females; # the intersection of @females and @simpsons: my @female_simpsons = grep( $simpsons{$_}, @females ); # proof it works print "Female Simpson:\t$_\n" foreach (@female_simpsons); # the difference of @females and @simpsons my @male_simpsons=grep(!defined $females{$_}, @simpsons); # proof it works print "Male Simpson:\t$_\n" foreach (@male_simpsons); my %union = (); # the union of @females and @simpsons foreach(@females,@simpsons){ $union{$_}=1; } my @union2 = keys %union; # or just do this # my @union = (@females, @simpsons);

  • Comment on Answer: How can I find the union/difference/intersection of two arrays?
  • Download Code
Log In?
Username:
Password:

What's my password?
Create A New User
Chatterbox?
Eily never heard of the movie "LanX"
[Eily]: the LanX OS either now that I think of it :P
[hippo]: Congratulations, Discipulus!
[Discipulus]: Satura Lanx was a latin genre of show
[Discipulus]: coming from the meaning of 'mixed dish'
[Discipulus]: thanks hippo! the hat you passed me was brand new and clean, thanks
LanX OS builds on multitasking humor ...
[LanX]: ... next release comes with even more random puns!

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (5)
As of 2017-07-28 10:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    I came, I saw, I ...
























    Results (426 votes). Check out past polls.