5

是否有任何理由在for循环以外的任何地方使用标量逗号运算符?

4

2 回答 2

7

由于 Perl 标量逗号是 C 逗号运算符的“端口”,因此这些注释可能是恰当的:

有时,您会发现自己处于 C 期望一个表达式的情况,但您有两件事要说。最常见的(实际上也是唯一常见的)示例是在for循环中,特别是第一个和第三个控制表达式。如果(例如)您想要一个循环从toi向上计数,同时 从to向下计数怎么办?010j100

所以,我认为它主要在循环中有用的直觉for是一个很好的直觉。

于 2010-02-04T15:24:57.830 回答
3

我偶尔会在条件(有时被错误地称为“三元”)运算符中使用它,如果代码比将其分解为真正的 if/else 更容易阅读:

my $blah = condition() ? do_this(), do_that() : do_the_other_thing();

它也可以用于最后一个结果很重要的某些表达式中,例如在grep表达式中,但在这种情况下,它就像使用分号一样:

my @results = grep { setup(), condition() } @list;
于 2010-02-04T16:20:25.793 回答