Когда скалярный оператор запятой Perl полезен?

Есть ли любая причина использовать скалярный оператор запятой где угодно кроме в a for цикл?

5
задан Daniel Daranas 19 July 2013 в 09:27
поделиться

2 ответа

Поскольку Скалярная запятая Perl является «портом» оператора запятой C, эти комментарии , вероятно, кстати:

Время от времени вы попадаете в ситуацию, в которой C ожидает одно выражение, но у вас есть две вещи, которые вы хотите сказать. Самый (и фактически единственный распространенный) пример - это цикл for , в частности первый и третий управляющие выражения. Что, если (например) вы хотите иметь цикл, в котором i считает вверх от 0 до 10 в в то же время, когда j ведет обратный отсчет от 10 до 0 ?

Итак, вы чувствуете, что это в основном полезно в ] для циклов, я думаю, хороший вариант.

7
ответ дан 13 December 2019 в 22:07
поделиться

Я иногда использую его в условном (иногда ошибочно называемом "тернарным") операторе, если код легче читать, чем разбивать его на реальный if / else:

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

Его также можно использовать в некоторых выражениях, где важен последний результат, например, в выражении grep , но в этом случае это точно так же, как если бы была точка с запятой использованный:

my @results = grep { setup(), condition() } @list;
3
ответ дан 13 December 2019 в 22:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: