sub exclude { my ($a, $b) = @_; my %lookup = map { $_ => undef } @$b; for (1..@$a) { my $i = shift @$a; push(@$a, $i) unless exists $lookup{$i}; } @$a; }