@q = split(/(.*?)/, $p); #### @q = split(//,$p); #### foreach (@q) { #### @q = split (//, $p); foreach (@q) { $count++ if $_ eq $matchchar; if ($_ eq $matchchar && ($count >= $nummatch)) { $_ = $repchar; } } $out = join ("", @q); print "out === $out"; #### foreach (@q) { if ($_ eq $matchchar) { if (++$count >= $nummatch) { $_ = $repchar; } } } #### foreach (@q) { if ($_ eq $matchchar && ++$count >= $nummatch) { $_ = $repchar; } } #### foreach (@q) { $_ = ($_ eq $matchchar && ++$count >= $nummatch)?$repchar:$_; } #### @q = map { ($_ eq $matchchar && ++$count >= $nummatch)?$repchar:$_ } @q; #### @q = map { ($_ eq $matchchar && ++$count >= $nummatch)?$repchar:$_ } split(//, $p); #### $out = join ("", map { ($_ eq $matchchar && ++$count >= $nummatch)?$repchar:$_ } split (//, $p));