【发布时间】:2017-10-26 12:43:19
【问题描述】:
为什么?:操作符不能返回列表?
my $hash = {
...
($row->active?checked=>1:()),
};
DOC 对标量或列表上下文只字不提
UPD
另一个例子:
@list = 2,3; # CORRECT
@list = 1? 2,3 : (); # Syntax error
为什么第一个可以,第二个不行?似乎 perl 将2,3 传播到外部上下文应该没有问题;
【问题讨论】:
-
您是否遇到了某种错误?
checked=>1到底应该是什么?这不是我认可的价值。 -
@hymie: 1. 我收到语法错误。 2.
checked => 1是名单:'checked',1 -
@list = 2,3;可能是正确的语法,但是您是否检查了结果列表实际包含的内容? -
checked=>1不是一个列表。(checked => 1)是一个哈希值。括号是语法的一部分,不是可以忽略的选项。 -
@hymie:
( checked => 1 )不是哈希:它是两个值的列表。