-1

我知道 Perl 中的字符串不是不可变的,所以自然的字符串替换方法是$var =~ s/re/$with/g.

然而,这对于我作为一个习惯于诸如

JS:

string.replace(/re/g, with)

重击:

${var//re/$with}

我看到的唯一解决方法是声明一个执行此任务的子例程,实现它很简单,但需要在我的代码中的任何地方复制或导入它。这是唯一的方法吗?

4

1 回答 1

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
于 2013-07-30T20:07:35.020 回答