Другая возможность - использовать регулярные выражения , которыми Perl славится:
if ($mystring =~ /s1\.domain\.com/) {
print qq("$mystring" contains "s1.domain.com"\n);
}
Обратная косая черта необходима, потому что .
может соответствовать любому символу. Вы можете обойти это, используя операторы \Q
и \E
.
my $substring = "s1.domain.com";
if ($mystring =~ /\Q$substring\E/) {
print qq("$mystring" contains "$substring"\n);
}
Или вы можете сделать как указано eugene y и использовать функцию index .
Просто предупреждение: Index возвращает -1
, когда не может найти совпадение вместо undef
или 0
.
Таким образом, это ошибка:
my $substring = "s1.domain.com";
if (not index($mystring, $substr)) {
print qq("$mystring" doesn't contains "$substring"\n";
}
Это будет неправильно, если s1.domain.com
находится в начале вашей строки. Я лично был обожжен на этом не раз.