強制 EXPR 在標量內容中進行詮釋,並傳回 EXPR 的值。
my @counts = ( scalar @a, scalar @b, scalar @c );
沒有等效的運算子可以強制表達式在清單內容中進行內插,因為在實務上,這永遠不會需要。然而,如果你真的想要這樣做,你可以使用結構 @{[ (some expression) ]}
,但通常一個簡單的 (some expression)
就足夠了。
因為 scalar
是單元運算子,如果你不小心對 EXPR 使用括號清單,這會表現為標量逗號表達式,在空內容中評估所有元素,但最後一個元素在標量內容中進行評估。這很少是你想要的。
以下單一陳述
print uc(scalar(foo(), $bar)), $baz;
等同於這兩個
foo();
print(uc($bar), $baz);
請參閱 perlop 以取得有關單元運算子與逗號運算子的更多詳細資料,以及 perldata 以取得有關在標量內容中評估雜湊的詳細資料。