强制在标量上下文中解释EXPR,并返回EXPR的值。
my@counts=(标量@a,标量@b,标量@c);
没有等价的操作符来强制在列表上下文中插入表达式,因为实际上,这是不需要的。然而,如果你真的想这样做,你可以使用@{[(某些表达式)]}
,但通常是一个简单的(一些表达)
就足够了。
因为标量
是一个一元运算符,如果您不小心为EXPR使用了一个带括号的列表,则其行为类似于标量逗号表达式,在void上下文中计算除最后一个元素以外的所有元素,并返回在标量上下文中计算的最后一个元素。这很少是你想要的。
下面是一句话:
打印uc(标量(foo(),$bar)),$baz;
是这两者的道德等价物:
foo();打印(uc($bar),$baz);
请参见佩洛普有关一元运算符和逗号运算符的更多详细信息,以及珍珠数据有关在标量上下文中计算哈希的详细信息。