my %b_value; @b_value{@b_array}=(); my @c_array = grep exists $b_value{$_}, @a_array; #### my $i; while($i < $#array/2) { my $copy = $array[$i]; $array[$i] = $array[-$i]; $array[-$i] = $copy; ++$i; }