Что означает =~ в 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";
}