Логические операторы анализируют булевы выражения и возвращают значения «истинно» или «ложно» в качестве результата. Perl обрабатывает операнды логических операций как булевы величины, т. е. как истинное или ложное значение.
Логические операторы языка Perl включают следующие:
· || логическое ИЛИ
· && логическое И
Perl всегда обрабатывает логические выражения слева направо. Кроме того. Perl всегда прекращает оценку, если уже выполненной оценки достаточно, чтобы определить значение результата.
В дополнение к общим логическим операторам Perl поддерживает следующие дополнительные логические операторы:
· ! логическое отрицание ()
· ? : условная операция
· , последовательное выполнение
Оператор логического отрицания (!) заменяет значение булевой величины на противоположную.
Так же как и в С, в языке Perl условный оператор (?:) использует три операнда. Выражение, использующее условный оператор, имеет следующую форму:
Condition ? true-result : false-result
Аналогично, следующее выражение использует условный оператор для того, чтобы предоставить Бобу полный доступ, а всем остальным — ограниченный:
$access = ($user eq ‘Bob’ ? ‘ Full ’ : ‘ Limited ’);
Оператор последовательного выполнения «,» (также известный как оператор запятая) не является вполне логическим оператором, поскольку он не анализирует истинность своих операндов. Perl выполняет операнды оператора последовательного выполнения слева направо и возвращает значение самого правого операнда. Следующий пример иллюстрирует использование оператора запятая в цикле for .
For ($i=0, $j=10; $i<10; $i++, $j-)
{
print i$,’ ‘,$j
}