重複の可能性:
Perlで=〜は何をしますか?
私が調べているPerlプログラム(名前は plutil.pl )では、XMLパーサー部分に多くの=~
があります。たとえば、関数UnfixXMLString
(1.7の行159
から167
($VERSION
は誤って「1.5」として宣言されています)):
sub UnfixXMLString {
my ($s) = @_;
$s =~ s/</</g;
$s =~ s/>/>/g;
$s =~ s/&/&/g;
return $s;
}
私の知る限り、そのCプロトタイプは(Cのような)string UnfixXMLString(string s)
であり、パラメーター(s
)で=~
演算子を使用して、変更された文字列を返しますが、やってるの?
=~
は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";
}