=~ (тильда со знаком равенства) и m"..." в директиве.htaccess
Я видел этот фрагмент кода в старом сообщении на форуме:
SSLRequire %{HTTP_HOST} =~ m"\.secure\.powweb\.com"
И мне просто было интересно, что означают =~
и m" ... "
. Я искал в Интернете и в документации Apache любые упоминания об операторе тильды со знаком равенства, но я не нашел упоминания об этом. Я знаю, что некоторые директивы могут использовать тильду для использования регулярного выражения, но я никогда не видел, чтобы форма m" ... "
использовалась раньше.
Для чего именно это m" ... "
? Где еще вы могли бы это увидеть форма?
1 answers
, который используется для сопоставления регулярного выражения в строке.
См. man perlop
:
Двоичный "=~" связывает скалярное выражение с совпадением шаблона. Определенный операции по умолчанию выполняют поиск или изменение строки $_. Этот оператор заставляет такую операцию работать с какой-то другой строкой. Право аргумент - это шаблон поиска, подстановка или транслитерация. Левый аргумент - это то, что должно быть найдено, заменено или транслитерировано вместо значения по умолчанию $_.
И
M/ШАБЛОН/msixpogc
/ШАБЛОН/msixpogc
Выполняет поиск в строке соответствия шаблону и в скалярном контексте возвращает значение true, если оно выполнено успешно, и значение false, если оно не выполнено. Если нет строки указывается с помощью оператора "=~" или "!~", строка $_ является разыскиваемый. (Строка, указанная с помощью "=~", не обязательно должна быть lvalue - это может быть результатом оценки выражения, но помните, что "=~" привязывается довольно сильно.) См. также perlre. См . perllocale для обсуждения дополнительных соображений, которые применяются, когда действует "использовать языковой стандарт".
...
Если "/" является разделителем, то начальная буква "м" необязательна. С "m" вы можете использовать любую пару не буквенно-цифровых, не пробельных символов в качестве разделителей.