=~ (тильда со знаком равенства) и m"..." в директиве.htaccess


Я видел этот фрагмент кода в старом сообщении на форуме:

SSLRequire %{HTTP_HOST} =~ m"\.secure\.powweb\.com"

И мне просто было интересно, что означают =~ и m" ... ". Я искал в Интернете и в документации Apache любые упоминания об операторе тильды со знаком равенства, но я не нашел упоминания об этом. Я знаю, что некоторые директивы могут использовать тильду для использования регулярного выражения, но я никогда не видел, чтобы форма m" ... " использовалась раньше.

Для чего именно это m" ... "? Где еще вы могли бы это увидеть форма?

Author: DisgruntledGoat, 2011-02-08

1 answers

, который используется для сопоставления регулярного выражения в строке.

См. man perlop:

Двоичный "=~" связывает скалярное выражение с совпадением шаблона. Определенный операции по умолчанию выполняют поиск или изменение строки $_. Этот оператор заставляет такую операцию работать с какой-то другой строкой. Право аргумент - это шаблон поиска, подстановка или транслитерация. Левый аргумент - это то, что должно быть найдено, заменено или транслитерировано вместо значения по умолчанию $_.

И

M/ШАБЛОН/msixpogc
/ШАБЛОН/msixpogc
Выполняет поиск в строке соответствия шаблону и в скалярном контексте возвращает значение true, если оно выполнено успешно, и значение false, если оно не выполнено. Если нет строки указывается с помощью оператора "=~" или "!~", строка $_ является разыскиваемый. (Строка, указанная с помощью "=~", не обязательно должна быть lvalue - это может быть результатом оценки выражения, но помните, что "=~" привязывается довольно сильно.) См. также perlre. См . perllocale для обсуждения дополнительных соображений, которые применяются, когда действует "использовать языковой стандарт".
...
Если "/" является разделителем, то начальная буква "м" необязательна. С "m" вы можете использовать любую пару не буквенно-цифровых, не пробельных символов в качестве разделителей.

 5
Author: Dennis Williamson, 2011-02-08 05:49:52