my @c = do { my %tmp = map { $_ => 1 } @a; grep {$tmp{$_}} @b }; #### for (1..@foo/2) { @foo[$_-1,-$_] = @foo[-$_,$_-1]; } #### @foo = map { pop(@foo) } 1..@foo;