如果您找到更好的方式来描述它,请随意修改此问题的标题.
想象一下,我们有:
my $foo = something;
my $newfoo = $foo =~ s/.*/something else/;
Run Code Online (Sandbox Code Playgroud)
我以为我会有$newfoo = something else
,而我发现它等于1.我想这个1就是说'匹配和替换成功'.
我发现的唯一解决方案是后续的:
my $foo = something;
my $newfoo = $foo;
$newfoo =~ s/.*/something else/;
Run Code Online (Sandbox Code Playgroud)
有没有办法完成相同的任务,即创建一个新的变量与正则表达式的结果而不修改第一个变量,没有中间步骤?
如果你使用perl 5.14或更高版本,这将有效.它被称为非破坏性替代.否则你将不得不坚持临时任务:
my $newfoo = $foo =~ s/.*/something else/r;
^ Add this
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
153 次 |
最近记录: |