Есть ли любая причина использовать скалярный оператор запятой где угодно кроме в a for
цикл?
Поскольку Скалярная запятая Perl является «портом» оператора запятой C, эти комментарии , вероятно, кстати:
Время от времени вы попадаете в ситуацию, в которой C ожидает одно выражение, но у вас есть две вещи, которые вы хотите сказать. Самый (и фактически единственный распространенный) пример - это цикл
for
, в частности первый и третий управляющие выражения. Что, если (например) вы хотите иметь цикл, в которомi
считает вверх от0
до10
в в то же время, когдаj
ведет обратный отсчет от10
до0
?
Итак, вы чувствуете, что это в основном полезно в ] для
циклов, я думаю, хороший вариант.
Я иногда использую его в условном (иногда ошибочно называемом "тернарным") операторе, если код легче читать, чем разбивать его на реальный if / else:
my $blah = condition() ? do_this(), do_that() : do_the_other_thing();
Его также можно использовать в некоторых выражениях, где важен последний результат, например, в выражении grep
, но в этом случае это точно так же, как если бы была точка с запятой использованный:
my @results = grep { setup(), condition() } @list;