Регулярное выражение Perl заменяет цифры самим собой, только один выше

У меня есть текст, как я могу заменить все числа в нем самими только одним выше?

Я пробовал такие вещи, как:

$buffer_content=~s/(\d)/($1++)/g;

Ответ 1

Используйте s///e - модификатор оценки, и вы можете поместить произвольные Perl-коды во вторую часть.

$x = "hello 3";
$x =~ s/([0-9]+)/$1 + 1/eg;
print $x;

// hello 4

ref: http://perldoc.perl.org/perlretut.html#Search-and-replace