2015-05-22 2 views
1

У меня есть следующий код в Perl:Perl стенографии для если заявление

next if ++$count == 1; 

, который должен быть эквивалентом

if (++$count == 1) { 
    next; 
} 

Есть ли способ запустить next; если добавить больше условий? (Т.е. если ++ $ счетчик равен 1 или больше, чем любое другое значение?

+0

попробуйте «и», объединив их в одну строку. Отказ от ответственности, я не делал perl через 13 лет. – Zuzlx

+2

Не так ли? Число не может быть равным 1 и больше некоторого другого значения – Bijan

+1

независимо от того, что вызывает логика :) – Zuzlx

ответ

9

Я думаю, что-то вроде

next if ++$count == 1 or $count > $other_value;

должен просто работать. Это довольно плотная, хотя и зависит от стороны эффект приращения и порядок старшинства

Я был бы соблазн добавить скобки и переместить приращение в сторону

$count++; 
next if ($count == 1) or ($count > $other_value); 
+2

Просто обратите внимание, что с 'или', как только будет найдено значение 'true', остальные выиграли ' t получает оценку, так как любое истинное значение в 'или' делает все это« истиной ». – Zuzlx

+0

@ Zuzlx это нормально, но RHS «или» не вносят никаких побочных эффектов в любой из случаев? – cms

+1

@ Zuzlx до тех пор, пока '++' находится на первой команде, это не имеет значения. – Bijan

2

Если у НУ хотите проверить инкрементируется значение $count для двух отдельных условий, то было бы лучше, чтобы увеличить его в отдельном заявлении, а не проверки один раз против ++$count и один раз против $count

Так что ваш код будет

++$count; 
next if $count == 1 or $count > $some_other_value; 
Смежные вопросы