使用Perl替换字符串而不分配变量

时间:2013-07-30 19:59:16

标签: perl

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

然而,对于我来说,这对于我来说非常有限,例如

JS:

string.replace(/re/g, with)

Bash:

${var//re/$with}

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

1 个答案:

答案 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