$altered_string = join q(), map { my $char = substr($string, $_, 1); $array[$_] eq q() ? lc($char) : $char; } 0 .. length $string;