Я думаю, что тег является переменной, и он проверяет 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.