scalar EXPR

強制 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 以取得有關在標量內容中評估雜湊的詳細資料。