我熟悉使用列表上下文为变量分配匹配项:
my ($ans) = $somevar =~ m/(somestuff)/;
但是,如果我想在匹配失败时为 $ans 分配一个默认值怎么办?有没有办法在一个表达式中做到这一点?最好没有条件运算符?
我熟悉使用列表上下文为变量分配匹配项:
my ($ans) = $somevar =~ m/(somestuff)/;
但是,如果我想在匹配失败时为 $ans 分配一个默认值怎么办?有没有办法在一个表达式中做到这一点?最好没有条件运算符?
也许三元运算符会有所帮助:
my $ans = $somevar =~ /(somestuff)/ ? $1 : 'default_val';
$ans
将是"default"
如果匹配失败,
my ($ans) = ($somevar =~ /(somestuff)/, "default");
请注意,右侧总是"default"
作为列表的最后一个元素,等待$ans
正则表达式失败并返回空列表时分配。
my ($ans) = "${somevar}default" =~ m/(somestuff|default)/;
实际上不要这样做。