12

重複の可能性:
Perl で =~ は何をしますか?

私が調べている Perl プログラム (namly plutil.pl=~ ) では、XML パーサー部分で多くのことがわかります。たとえば、関数は次のとおりです (1.7のUnfixXMLString行(誤っ159て"1.5" と宣言されています)):167$VERSION

sub UnfixXMLString {
    my ($s) = @_;

    $s =~ s/&lt;/</g;
    $s =~ s/&gt;/>/g;
    $s =~ s/&amp;/&/g;

    return $s;
}

私が知る限り、その C プロトタイプは (C-like)であり、パラメーター ( ) で演算子をstring UnfixXMLString(string s)使用してから、変更された文字列を返しますが、それは何をしているのでしょうか?=~s

4

2 に答える 2

22

=~Perlバインディング オペレータです。通常、文字列に正規表現を適用するために使用されます。たとえば、文字列がパターンに一致するかどうかをテストするには、次のようにします。

if ($string =~ m/pattern/) {

または、文字列からコンポーネントを抽出するには:

my ($first, $rest) = $string =~ m{^(\w+):(.*)$};

または置換を適用するには:

$string =~ s/foo/bar/;
于 2012-05-01T23:47:10.590 に答える
3

=~Perlバインディング演算子であり、正規表現の一致が発生したかどうかを判断するために使用できます(trueまたはfalse)

$sentence = "The river flows slowly.";
if ($sentence =~ /river/)
{
    print "Matched river.\n";
}
else
{
    print "Did not match river.\n";
}
于 2012-05-01T23:57:48.490 に答える