Когда полезен скалярный запятый в Perl? - PullRequest
5 голосов
/ 04 февраля 2010

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

Ответы [ 2 ]

7 голосов
/ 04 февраля 2010

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

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

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

3 голосов
/ 04 февраля 2010

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

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

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

my @results = grep { setup(), condition() } @list;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...