如何在Perl正则表达式中使用/ r标志?

use*_*989 5 regex perl

Perl doc说:

e  Evaluate 'replacement' as an expression
r  Return substitution and leave the original string untouched.
Run Code Online (Sandbox Code Playgroud)

是否有可用于替换模式的标志.当我将r标志传递给我的替换模式时,它被解释为语法错误.我正在运行Perl 5.8.8.我的Perl版本是否可能不支持它?此外,有人可以提供如何使用标志以及如何调用新创建的替换的工作示例吗?

ike*_*ami 15

也许你应该阅读5.8.8的文档呢?/ r被添加到5.14!

在5.8.8中,你可以做相当于

s/foo/bar/r
Run Code Online (Sandbox Code Playgroud)

do { (my $s = $_ ) =~ s/foo/bar/; $s }
Run Code Online (Sandbox Code Playgroud)

s /// r的示例用法:

print "abba" =~ s/b/!/rg;         # Prints a!!a

my $new = $old =~ s/this/that/r;  # Leaves $old intact.

my $trimmed = $val =~ s/^\s+//r =~ s/\s+\z//r;
my $trimmed = (($val =~ s/^\s+//r) =~ s/\s+\z//r);  # Same as previous
Run Code Online (Sandbox Code Playgroud)