2016-11-03 6 views
0

übereinstimmen Ich habe Probleme mit einer Zeichenfolge mit einem Dollarzeichen ($) darin übereinstimmen.Eine Zeichenfolge mit einem Sonderzeichen in Perl

Hier ist mein Code:

if (index($ln, '$COMB') != -1) 
{ 
    [do some stuff] 
} 

ich '\$COMB' versucht haben, '\\$COMB' und '\\\$COMB'

Ich brauche die genaue Zeichenfolge übereinstimmen, $COMB. Das Problem ist, dass mein Code auch übereinstimmt: $[some other stuff]COMB. Was ich nicht will.

+0

Eigentlich, das ist nicht das Problem. Etwas anderes in meinem Code hat mein Debugging in die Irre geführt. – SKing

+0

Ich würde diesen Beitrag löschen, wenn ich den Knopf dafür finden könnte. – SKing

+0

Sie können keine Links "teilen, bearbeiten, löschen" unterhalb Ihrer Frage sehen? – toolic

Antwort

0

In der Tat überprüft index, ob eine Zeichenfolge in enthalten ist. Es wird $COMB in $..COMB nicht finden, wie Sie behaupten, aber es würde es in ...$COMB... finden.

Wenn Sie überprüfen möchten, ob eine Zeichenfolge dieselbe ist wie eine andere, verwenden Sie eq.

$ln eq '$COMB' 

Zum Beispiel

$ perl -e' 
    CORE::say qq{"$_" is }.($_ eq "abc" ? "equal" : "not equal").qq{ to "abc"} 
     for qw(abc abcdef def); 
' 
"abc" is equal to "abc" 
"abcdef" is not equal to "abc" 
"def" is not equal to "abc" 
Verwandte Themen