【发布时间】:2019-01-28 09:49:14
【问题描述】:
想知道当do {} 在两种情况下都返回列表时,下面两个给出不同结果的示例背后的基本原理是什么。
perl -wE 'say my $r = do { (44); }'
44
perl -wE 'say my $r = do { my ($x) = map $_, 44; }'
1
【问题讨论】:
-
在第二个示例中,您有一个明确的标量上下文 (
my ($x) = ...)。 -
不完全是,你可以检查
$x是44,$r是1。如果是标量上下文,$x也会是1。 -
好吧
perl -MO=Concise ...显示了差异,但我无法解释上下文列表/标量的真正设置位置。
标签: perl