my %seen; @seen{ @original_1 } = (); delete @seen{ @original_2 }; my @original_1_only = keys %seen; #### my %seen; my @original_1_only; @seen{ @original_2 } = (); foreach (@original_1) { push(@original_1_only, $_) unless exists $seen{$_}; };