В языке программирования Perl существует один оператор который работает с тремя операндами.
Тернарный оператор, это 2 символа, ?:
, причем эти символы записываются не рядом, а между
операндами.
?:
в Perl
В языке программирования Perl существует один оператор который работает с тремя операндами.
Тернарный оператор, это 2 символа, ?:
, причем эти символы записываются не рядом, а между
операндами.
Тернарный оператор возвращает либо второй, либо третий операнд в зависимости от значения первого операнда. Если первый операнд — это истина, то тогда возвращается второй операнд, если же первый операнд — это ложь, то тогда возвращается третий операнд (подробнее про истину и ложь в Perl).
Вот пример:
#!/usr/bin/perl
my $var = 1 ? 100 : 200;
print $var;
Программа выведет на экран число 100
.
1
?
100
:
200
Первый операнд 1
— это истина, поэтому результатом оператора является второй операнд, т.е.
число 100
. Именно это значение присваивается переменной и отображается на экране.
Вместо тернарного оператора можно использовать if-else
. Вот программа, которая работает так
же как и предыдущая:
#!/usr/bin/perl
my $var;
if (1) {
$var = 100;
} else {
$var = 200;
}
print $var;
Иногда удобнее использовать тернарный оператор, а иногда конструкцию if-else
.