regex – 如何对字符串执行Perl替换,同时保留原始?

在Perl中,使用正则表达式对字符串执行替换并将值存储在不同变量中而不更改原始值的好方法是什么?

我通常只是复制字符串到一个新的变量,然后绑定到s / / regex,替换在新的字符串,但我想知道是否有更好的方法来做到这一点?

$newstring = $oldstring;
$newstring =~ s/foo/bar/g;

解决方法

这是我一直用来获得一个字符串的修改副本,而不改变原来的习语:
(my $new = $original) =~ s/foo/bar/;

在perl 5.14.0或更高版本中,可以使用new / r non-destructive substitution modifier:

my $new = $old =~ s/foo/bar/r;

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...