Вам не нужен цикл: модификатор / g заставляет замену повторяться столько раз, сколько она совпадает.Вам нужен модификатор / e для вычисления подстановки.Предполагая, что эффект, который вы получили после этого, заключается в добавлении 5 к каждому числу, пример кода выглядит следующим образом:
$str = "1 2 3 4";
$str =~ s/(\d)/$1+5/eg;
print "$str\n";
Если вы действительно хотите заменить числа, начинающиеся с 6, то это работает.
$num = 6;
$str = "1 2 3 4";
$str =~ s/\d/$num++/eg;
print "$str\n";