Another way would be to combine a regular expression look-ahead with pos to find all of the potential positions in the text where a substitution might be made and then use substr to make the substitutions, working from the last substitution forwards to avoid the positions going out of kilter.
use strict; use warnings; my $text = q{abaacaa}; my $repCt = 3; my $replace = q{a}; my $len = length $replace; my $with = q{aa}; print qq{$text\n}; my @posns; push @posns, pos $text while $text =~ m{(?=$replace)}g; print qq{@posns\n}; substr $text, $_, $len, $with for reverse @posns[ 0 .. $repCt - 1 ]; print qq{$text\n};
The output.
abaacaa 0 2 3 5 6 aabaaaacaa
I hope this is of interest.
Cheers,
JohnGG
In reply to Re^5: Does Perl support a given number of replacements ?
by johngg
in thread Does Perl support a given number of replacements ?
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |