我知道Perl中的字符串不是不可变的,因此自然字符串替换方法是$var =~ s/re/$with/g
。
然而,对于我来说,这对于我来说非常有限,例如
JS:
string.replace(/re/g, with)
Bash:
${var//re/$with}
我看到的唯一解决方法是声明一个执行此任务的子例程,并且可以直接实现此任务,但需要在我的代码中的任何地方复制或导入它。这是唯一的方法吗?
答案 0 :(得分:8)
对r
使用s///
修饰符。它将执行非破坏性替换(保留左操作数未修改)并返回替换结果。你需要Perl 5.13.2或更高版本。
say $var =~ s/re/$with/gr; # print result of replacing "re" with $with in $var
say $var; # print original $var, without anything substituted