h1. Выражения h2. Синтаксис $[expr1 *оператор* expr2] В процессе выполнения обработчика вызвов система выполняет и подменяет выражения на результат операции. h2. Доступные операторы h4. Логические операторы *expr1 | expr2* - логическое ИЛИ. Если выражение _expr1_ выполняется в непустую строку или в ненулевое значение, возвращает это значение. В остальных случаях возвращает результат выполнения expr2. *expr1 & expr2* - логическое И Если оба выражения выполняются в непустые строки или в ненулевые значение, возвращает _expr1_. В остальных случаях возвращает 0. *!expr1* - логическое отрицание Если _expr1_ выполняется в непустую строку или в ненулевое значение, возвращает 0. Если _expr1_ выполняется в пустую строку или в нулевое значение, возвращает 1. h4. Операторы сравнения *expr1 = expr2* *expr1 != expr2* *expr1 < expr2* *expr1 > expr2* *expr1 <= expr2* *expr1 >= expr2* h4. Арифметические операторы *expr1 + expr2* *expr1 - expr2* *- expr* *expr1 * expr2* *expr1 / expr2* *expr1 % expr2* h4. Регулярные выражения *expr1 : regexp* - проверяет на соответствие регулярному выражению _regexp_. Регулярное выражение должно иметь префикс ^. Если совпадение успешное, и _regexp_ содержит хотя бы одно регулярное подвыражение '\(...\)', возарвщается строка соответствующая первому совпадению. В остальных случаях возврадается кол-во совпавших символов. Если совпадение не найдено и _regexp_ содержит регулярное подвыражение, то возвращается строка NULL. В остальных случаях 0. *expr1 =~ expr2* - то же самое что :, но результат совпадения не отделяется в начале строки.