@A = (1,2,3,4,5,6); @B = (1,2,3,4,5,6,7,8,9); @seen{@A} = (); @merged = (@A, grep{!exists $seen{$_}} @B); print @merged;