in reply to Replacing with multiple occurrences.

I'm not sure if I understand you correctly, but maybe ...

In a regular expression, you can use variables as well: $variable =~ s/($pattern)+/..../ Beware that $pattern is interpolated, so if $pattern contains something like \, it may even become an error, e.g

C:\>perl $pattern = "\\"; $variable = "abcde\\fg"; print $variable =~ /$pattern/; ^D Trailing \ in regex m/\/ at - line 4.
To prevent this danger of interpolation, use  /(\Q$pattern\E)+/ If you want to capture the multiple expression and not just a single appearance, put braces around and use the inner in a clustering way with ?: e.g $variable =~ s/((?:\Q$pattern\E)+)/..../ or in a better documented way:
$variable =~ s/ ( # start capturing to $1 (?: # not capturing, just clustering \Q$pattern\E # $pattern in a quoted way ) + # one or more times ) # end capturing to $1 / .... /x;
If you want to put code at the right hand of the substitution, you could use /e to evaluate code at the right hand sinde, e.g.
$variable =~ s/((?:\Q$pattern\E)+)/$1.$1.$1/e; print $variable;
The best help may be reading perldoc perlre

Best regards,
perl -e "s>>*F>e=>y)\*martinF)stronat)=>print,print v8.8.8.32.11.32"