If any part of LIST is an array, "foreach" will get very confused if
you add or remove elements within the loop body, for example with
"splice". So don’t do that.
####
@foo = map { 'd' eq $_ ? ($_,'h') : $_ } @foo;
# puts 'h' right after 'd'
####
my @extras;
foreach my $x (@foo) {
push @extras, 'h' if $x eq 'd';
print $x;
}
push @foo, @extras;
# didn't print 'h'. But if we add:
print foreach @extras;
# that works ... but duplicates code.
####
{
my @extras;
foreach my $x (@foo) {
push @extras, 'h' if $x eq 'd';
}
push @foo, @extras;
}
foreach my $x (@foo)
{
print $x;
}