Интервальные условия
В математике очень распространены конструкции с двумя знаками неравенства, например:
print "yes" if 0 < $x < 10;
Такое же условие разрешено и в обычной форме оператора if (само условие можно и не заключать в круглые скобки):
if (0 < $x < 10){
print "yes";
}
else{
print "no";
}
Более того, работоспособным оказывается и код с большим числом нанизанных условий:
my $x = 5;
my $y = 15;
print "yes" if 0 < $x < 10 < $y;
Чтобы убедиться в том, что такой условный оператор работает так, как от него ожидается, можно изменить переменную $y, присвоив ей, например, значение 6. В этом случае все условие окажется ложным. Сомнения возникли
Следуя этой идеологии, можно предположить, что допустим и такой код:
print (($x < 10 < $y) ?? "yes" :: "no");
И это действительно работает. О тернарном операторе выбора — отдельная заметка.
29 октября 2003