Небольшой пример:
perl -e '$s="aaabbcc";$c=()=$s=~/a/g;print"$c\n$s\n"'
(m//g) выходы
3
aaabbcc
тогда как perl -e '$s="aaabbcc";$c=()=$s=~s/a/x/g;print"$c\n$s\n"'
(s///g) выводит
1
xxxbbcc
Я хотел бы сделать обе вещи сразу, не имея при себе совпадения: замените и узнайте количество подстановок. Очевидно, что s///g не возвращает число подстановок в скалярном контексте - в отличие от m//g со спичками. Это возможно? Если да, то как?
perlre, perlvar и perlop не помогли (или я просто не мог его найти).