Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference of Two Arrays Using Perl

Tags:

arrays

perl

I have two arrays. I need to check and see if the elements of one appear in the other one.

Is there a more efficient way to do it than nested loops? I have a few thousand elements in each and need to run the program frequently.

like image 983
Buzkie Avatar asked May 29 '10 01:05

Buzkie


1 Answers

Another way to do it is to use Array::Utils

use Array::Utils qw(:all);  my @a = qw( a b c d ); my @b = qw( c d e f );  # symmetric difference my @diff = array_diff(@a, @b);  # intersection my @isect = intersect(@a, @b);  # unique union my @unique = unique(@a, @b);  # check if arrays contain same members if ( !array_diff(@a, @b) ) {         # do something }  # get items from array @a that are not in array @b my @minus = array_minus( @a, @b ); 
like image 143
Nifle Avatar answered Oct 21 '22 11:10

Nifle