Оператор используется чтобы определить,
верно ли какое либо из условий.
Op1 0 1 0 1 |
Op2 0 0 1 1 |
Op1||Op2 0 1 1 1 |
В программе ниже проверяется, равна ли
переменная $firstVar 9, а переменная secondVar 10. Если
хотя бы одно из этих условий истинно (или
они оба истинны), то печатается строка "Error!".
if ($firstVar == 9 || $firstVar == 10) {
print("Error!");
}
ВНИМАНИЕ! Если первое условие выполняется
(первый операнд равен "истине"), то
вычисление второго условия не происходит.
Если вы не будете достаточно внимательны,
это может быть источником очень трудно
вылавливаемых ошибок. Например:
if ($firstVar++ || $secondVar++) { print("\n"); }
если переменная $firstVar равна "истине",
то инкремент переменной $secondVar проводиться
НЕ будет.
Вы также можете попробовать применить
такую конструкцию:
if ($firstVar == (9 || 10)) {
print("Error!");
};
чтобы определить, равна ли переменная $firstVar
9 или 10. Ни в коем случае не делайте этого. Perl
в этой ситуации сработает несколько по-другому,
- совсем не так, как вы ожидали. Сначала
выражение "9||10" будет рассмотрено, как
равное 9, а за тем будет произведена
проверка на равенство переменной $firstVar 9.
Правильно будет написать так:
if ($firstVar == 9 || $firstVar == 10) {
print("Error!");
};
Никогда не забывайте подобных особенностей
языка Perl.