在Perl中是否有类似的Ruby gsub方法?

vav*_*ava 2 perl perl5

可能重复:
如何在保留原始字符串的同时对字符串执行Perl替换?

如何在不修改字符串本身的情况下在Perl中进行一行替换?我也希望它在表达式中可用,就像我p s.gsub(/from/, 'to')在Ruby中可以做的那样.

我能想到的只是

do {my $r = $s; $r =~ s/from/to/; $r}
Run Code Online (Sandbox Code Playgroud)

但是肯定有更好的方法吗?

hob*_*bbs 10

从您use 5.14.0在所有程序的顶部写入感觉很舒服的那一天开始,您可以使用运算符的s/foo/bar/r变体s///,它返回已更改的字符串,而不是修改原始字符(在perl 5.13中添加) 0.2).