Perl - 这个声明在做什么?

时间:2013-07-12 11:10:04

标签: perl

我猜这一行:

  my $last = $last_game ? 1 : 0;

如果1$last,则将$last_game分配给true,否则$last获得0。我是对的吗?

由于

2 个答案:

答案 0 :(得分:1)

是的,你是对的,它是一个三元条件运算符。

来自perldoc

  

三元“?:”是条件运算符,就像在C中一样。它的工作方式与if-then-else非常相似。如果之前的论点?如果是,则返回:之前的参数,否则返回:之后的参数。例如:

printf "I have %d dog%s.\n", $n,
    ($n == 1) ? "" : "s";

答案 1 :(得分:1)

这是ternary Conditional operator。它就像

一样
  

COND?然后:ELSE

如果条件COND为true,则仅计算THEN表达式,并且该表达式的值将成为整个表达式的值。否则,仅计算ELSE表达式,并且其值将成为整个表达式的值。