3

リストコンテキストを使用して変数に一致を割り当てることに精通しています。

my ($ans) = $somevar =~ m/(somestuff)/;

しかし、一致が失敗したときに $ans にデフォルト値を割り当てたい場合はどうすればよいでしょうか? 1 つの式でこれをうまく行う方法はありますか? できれば条件演算子なしで?

4

3 に答える 3

3

おそらく、三項演算子が役立つでしょう:

my $ans = $somevar =~ /(somestuff)/ ? $1 : 'default_val';
于 2013-10-16T20:09:00.790 に答える
2

$ans"default"マッチが失敗した場合、

my ($ans) = ($somevar =~ /(somestuff)/, "default");

右側には常にリストの最後の要素があり、正規表現が失敗して空のリストが返されたとき"default"に割り当てられるのを待っていることに注意してください。$ans

于 2013-10-16T20:07:40.063 に答える
2
my ($ans) = "${somevar}default" =~ m/(somestuff|default)/;

実際にこれをしないでください。

于 2013-10-16T21:34:10.440 に答える