Что означает =~ в Perl [дубликат]
Возможные Дубликаты:
что делает =~ в Perl?
в программе Perl я изучаю (namly plutil.pl), я вижу много =~ на части синтаксического анализатора XML. Например, вот функция UnfixXMLString (строки 159 to 167 на 1.7 ($VERSION ошибочно заявлена как "1.5"))
sub UnfixXMLString {
my ($s) = @_;
$s =~ s/</</g;
$s =~ s/>/>/g;
$s =~ s/&/&/g;
return $s;
}
из того, что я могу сказать, его прототип C будет (c-like)string UnfixXMLString(string s), и он использует =~ оператор по параметру (s), а затем возвращает измененную строку, но что она делает?
2 ответов
=~ Это Perl оператор привязки. Он обычно используется для применения регулярного выражения к строке; например, чтобы проверить, соответствует ли строка шаблону:
if ($string =~ m/pattern/) {
или для извлечения компонентов из строки:
my ($first, $rest) = $string =~ m{^(\w+):(.*)$};
или применить замену:
$string =~ s/foo/bar/;
=~ является оператором привязки Perl и может использоваться для определения соответствия регулярному выражению (true или false)
$sentence="The river flows slowly.";
if($sentence =~ /river/)
{
print "Matched river.\n";
}
else
{
print"Did not match river.\n";
}