我在很多 Perl 书籍中搜索,但找不到答案。我有这个代码,我想它所做的是将参数的票分配给 $ticket 如果它存在,如果不存在,则分配 0。
my $ticket = $params->{ticket} // 0;
我在很多 Perl 书籍中搜索,但找不到答案。我有这个代码,我想它所做的是将参数的票分配给 $ticket 如果它存在,如果不存在,则分配 0。
my $ticket = $params->{ticket} // 0;
//
表示已定义或。如果已定义$ticket
则赋值,否则为 0。$params->{ticket}
尽管它在 C 中没有直接的等价物,但 Perl 的
//
运算符与其 C 风格的或有关。实际上,它与 完全相同||
,只是它测试的是左侧的定义性而不是其真实性。因此,如果定义了则EXPR1 // EXPR2
返回 的值EXPR1
,否则EXPR2
返回 的值。
它是在 5.10 中添加的。
在上面的代码中,$params->{ticket}
仍然可以有垃圾,所以在使用它之前确保值符合预期的模式。