Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: comparing two array

by si_lence (Deacon)
on Jun 17, 2009 at 12:36 UTC ( [id://772372] : note . print w/replies, xml ) Need Help??


in reply to comparing two array

This is more or less directly from the Perl Cookbook It passes through the first array remembering all elements in the 'seen' hash, then passes through the second one and only remembers the elements already encountered in the first.

It also has a more idomatic version there if you want is more perlish.

use strict; use warnings; my @a = (1, 3, 5, 6, 7, 8); my @b = (2, 3, 5, 7, 9); my (@isect, %seen, %isect); foreach my $e (@a) { $seen{$e} = 1 } foreach my $e (@b) { if ( $seen{$e} ) { $isect{$e} = 1 } } @isect = keys %isect; print "@isect\n";
cheers

si_lence