Perl的标量逗号运算符何时有用?

时间:2010-02-04 15:17:23

标签: perl operators comma-operator

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

2 个答案:

答案 0 :(得分:7)

由于Perl标量逗号是C逗号运算符的“端口”,these comments可能是适当的:

  

有一段时间,你会发现自己   C期望的情况   单表达,但你有两个   你想说的话。最多   共同的(实际上是唯一的共同)   示例是在for循环中,具体而言   第一和第三控制   表达式。如果(例如)你怎么办?   希望有一个i计数的循环   同时从0升级到10   j10倒计时到0

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

答案 1 :(得分:3)

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

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

它也可以用在最后一个结果很重要的某个表达式中,例如在grep表达式中,但在这种情况下,它与使用分号时的结果相同:

my @results = grep { setup(), condition() } @list;