http://www.perlmonks.org?node_id=1111924


in reply to Re: Dera Monks, Have create multiple file from one file now I want to match a pattern in each file at the same time do the replacement with adding one to the match pattern.
in thread Dera Monks, Have create multiple file from one file now I want to match a pattern in each file at the same time do the replacement with adding one to the match pattern.

If I'm not wrong the question is: how to do a global substitution of a pattern over several files replacing the pattern by $counter and also updating $counter as $counter+1 each time a substitution is done.

I have some doubts about this lines

++$n; $lines[0] =~ s[/4947000219/\K(4947000210+)] [$1+$n]e;

You search for a big number, then discard the first ten digits, capture next digits and replace it by $1+$n in an eval (e) context when $n is a counter. Ok.

The use of \K here also confuses me a little. Can't see the point of doing this here when you aren't really picking up those digits

when \K is reached Perl throws away everything that it has matched up to that point. It means that our replacement won’t affect anything before the \K, because Perl will have forgotten about it

I wonder if you want to say $n++ or $n += 1 instead ++$n