my @foo = qw/a b c d e f g/; my $sub = 'h'; for (my @extras = @foo; @extras;) { @extras = map { /[dhij]/ ? $sub++ : () } @extras; push @foo, @extras; } print for @foo;