Perl String - 替换字符而不形成新变量

bry*_*mon 8 perl

是否可以替换字符串的一部分而不必创建一个全新的变量?

现在我这样做:

$someString = "how do you do this";
$someString = s/how do/this is how/;
Run Code Online (Sandbox Code Playgroud)

我想要做的是保留原始字符串($ someString)并能够替换几个字符而无需修改原始字符串.我更熟悉Javascript,我可以在你的代码中这样做,而无需创建/修改变量.

someString.replace(/how do/, "this is how")
Run Code Online (Sandbox Code Playgroud)

感谢任何帮助,非常感谢

jus*_*ime 16

请注意我完全理解这个问题.如果要保持原始字符串不变,则需要创建一个新变量.

$newstring = $someString ;
$newstring =~ s/how do/this is how/;
Run Code Online (Sandbox Code Playgroud)

请注意,操作员=~不是=

另外我想我现在看到你想要的东西 - 返回更改的字符串而不是修改变量.在Perl 5.14中有一种方法可以做到这一点,但我目前还不知道一种方法.请参阅使用/ R替代标志使用副本的有效Perler.

更新s/ / /rfunctionallity已发布的Perl一段时间.你可以做

use 5.14.0 ;
my $someString = "how do you do this";
say ($someString =~ s/how do/this is how/r) ;
Run Code Online (Sandbox Code Playgroud)

  • 你可以用`(my $ newstring = $ someString)= ~s//怎么做/这是怎么写/;` (2认同)