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

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.