Я думаю, что тег является переменной, и он проверяет 9eaf
- но существует ли он в Perl?
Что здесь делает знак "= ~" и что делают символы "/" до и после 9eaf
?
if ($tag =~ /9eaf/)
{
# Do something
}
Я думаю, что тег является переменной, и он проверяет 9eaf
- но существует ли он в Perl?
Что здесь делает знак "= ~" и что делают символы "/" до и после 9eaf
?
if ($tag =~ /9eaf/)
{
# Do something
}
=~
- это оператор, проверяющий соответствие регулярного выражения. Выражение /9eaf/
является регулярным выражением (косые черты //
являются разделителями, 9eaf
является фактическим регулярным выражением). На словах в тесте говорится: "Если переменная $tag соответствует регулярному выражению /9eaf/...", и это совпадение происходит, если строка, хранящаяся в $tag
, содержит символы 9eaf
последовательно, по порядку, в любой точке, Таким образом, это будет верно для строк
9eaf
xyz9eaf
9eafxyz
xyz9eafxyz
и многие другие, но не строки
9eaxxx
9xexaxfx
и многие другие. Посмотрите 'perlre' man для получения дополнительной информации о регулярных выражениях или регулярном выражении perl google.
Оператор '= ~' является оператором привязки , который указывает, что следующая операция будет искать или изменять скаляр слева.
Оператор по умолчанию (неуказанный) - 'm' для соответствия.
Оператор сопоставления имеет пару символов, которые обозначают, где начинается и заканчивается регулярное выражение. Чаще всего это "//'.
Дайте Perl Re учебник читать.
Код проверяет, является ли 9eaf
подстрокой значения $tag
.
$tag =~ /9eaf/
не подходит для
$tag =~ m/9eaf/
где m//
- оператор совпадения. Он соответствует шаблону регулярного выражения (regexp) 9eaf
по отношению к значению, связанному с =~
(возвращается левой стороной =~
).
Операторы, включая m//
и =~
, описаны в perlop.
Регулярные выражения (например, 9eaf
) описаны в perlre, perlretut.
Это проверяет соответствие скалярного $tag
(предположительно, строки) для регулярного выражения /9eaf/
, которое просто проверяет, является ли строка "9eaf"
подстрокой $tag
. Проверьте perldoc perlretut
.