我有
my $x = "whatever 123";
$x =~ s/ //g;
$x =~ s/\d/9/g;
frobnicate($x);
尽管在现实生活中,它变得更加凌乱且更大。我想做的是以功能形式执行替换,如下所示:
my $x = "whatever 123";
frobnicate( regex_substitutions($x, s/ //g, s/\d/9/g) );
这看起来像是可读性上的倒退,但是在现实生活中,这样的事情实际上会有所帮助。其目标是避免在单独的语句中使用正则表达式替换,但将其合并到表达式中。我猜这是长期Perl专家会知道的一种巧妙且易读的方法。
(不仅有“一种以上的解决方法”,而且有超过一种方式来询问任何特定的事情。请原谅我这个问题是否对现有的问题是多余的。)
最佳答案
5.14引入的/ r(eturn):
frobnicate( $x =~ s/ //gr =~ s/\d/9/gr );
任何版本:
frobnicate apply { s/ //g; s/\d/9/g; } $x;
apply
来自List::MoreUtils。