从Perl中的替换中获取匹配变量的最简洁方法是什么?我有时会发现自己写作
s/(something)// ;
my $x = $1 ;
Run Code Online (Sandbox Code Playgroud)
然后我意识到如果s/ / /
失败$1
可能会带来前一场比赛的值.所以我试试
my $x = 'defaultvalue' ;
if ( s/(something)// )
{
$x = $1 ;
}
Run Code Online (Sandbox Code Playgroud)
这是最干净的方式吗?
正如其他人指出的那样,TIMTOWTDI。
我个人会将其包装为一个表达式,以免过多分散注意力:
my $x = s/(something)// ? $1 : 'defaultvalue';
Run Code Online (Sandbox Code Playgroud)