如何在Perl中替换后使用匹配变量$ 1?

jus*_*ime 5 perl

从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)

这是最干净的方式吗?

JB.*_*JB. 2

正如其他人指出的那样,TIMTOWTDI。

我个人会将其包装为一个表达式,以免过多分散注意力:

my $x = s/(something)// ? $1 : 'defaultvalue';
Run Code Online (Sandbox Code Playgroud)