リストコンテキストを使用して変数に一致を割り当てることに精通しています。
my ($ans) = $somevar =~ m/(somestuff)/;
しかし、一致が失敗したときに $ans にデフォルト値を割り当てたい場合はどうすればよいでしょうか? 1 つの式でこれをうまく行う方法はありますか? できれば条件演算子なしで?
リストコンテキストを使用して変数に一致を割り当てることに精通しています。
my ($ans) = $somevar =~ m/(somestuff)/;
しかし、一致が失敗したときに $ans にデフォルト値を割り当てたい場合はどうすればよいでしょうか? 1 つの式でこれをうまく行う方法はありますか? できれば条件演算子なしで?
おそらく、三項演算子が役立つでしょう:
my $ans = $somevar =~ /(somestuff)/ ? $1 : 'default_val';
$ans
"default"
マッチが失敗した場合、
my ($ans) = ($somevar =~ /(somestuff)/, "default");
右側には常にリストの最後の要素があり、正規表現が失敗して空のリストが返されたとき"default"
に割り当てられるのを待っていることに注意してください。$ans
my ($ans) = "${somevar}default" =~ m/(somestuff|default)/;
実際にこれをしないでください。