Tim*_*Tim 1 regex perl substitution perl5
sub my_sub {
my $str = shift;
$str =~ s/some/regex/;
return $str;
}
Run Code Online (Sandbox Code Playgroud)
对于这样一个简单的子程序,五行似乎太长了.可以简化,例如不使用中间变量吗?
没有中间变量和一条线更短:
sub my_sub {
$_[0] =~ s/some/regex/;
return $_[0];
}
Run Code Online (Sandbox Code Playgroud)
编辑:正如@pavel所说,这将修改原始变量.
从Perl 5.13.2开始,有非破坏性修饰符/r(供参考,参见perlop),它不会修改正则表达式操作的变量 - 这也允许抛弃另一条线:
sub my_sub {
return $_[0] =~ s/some/regex/r;
}
Run Code Online (Sandbox Code Playgroud)