nck*_*nck 2 perl conditional-operator
如果可能的话,我想在一行中进行以下分配,但又不要太长:
my $variable = defined($self->{_some_thing_stored_here}) ? $self->{_some_thing_stored_here} : new some_function(@with_some_parameters);
Run Code Online (Sandbox Code Playgroud)
是否有可能以类似的方式类似于使用“ $ _”在循环中获取变量以获取if条件的参数,因此它看起来像这样:
my $variable = defined($self->{_some_thing_stored_here}) ? $_ : new some_function(@with_some_parameters);
Run Code Online (Sandbox Code Playgroud)
PD:我知道可以将条件放入变量中,但是我想知道是否可以将其做得更短。
的定义-或操作员:
my $variable = $self->{_some_thing_stored_here} // some_function(@with_some_parameters);
Run Code Online (Sandbox Code Playgroud)
需要Perl 5.10+。
您也可以(ab)使用后缀foreach来使用$_已定义的检查,尽管它不是最常见的习惯用法,但是它并不是您最需要的习语,并且应注意不要使用后缀声明修饰符声明变量,并且不要调用任何会改变当前别名的global $_。
my $variable;
$variable = check($_) ? $_ : something_else() for $self->{_some_thing_stored_here};
# make sure something_else does not clobber $_
# that would also clobber $self->{_some_thing_stored_here} !
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |