我有一个变量$next
,其中包含可能包含括号的字符串,例如trna(tgc)
我想创建此匹配语句if ($data[$i][2]=~/$next/){ ..}
并且它总是返回false,即使它实际上是真的。我试过这个if ($data[$i][2]=~/trnA\(tgc\)/){ ..}
并且它有效。
我的问题是:如何将每个括号前面的'\'插入变量$next
?
答案 0 :(得分:4)
您需要引用元字符。
试试这个。
print "match" if( $var1 =~ /\Q$var2\E/ );
答案 1 :(得分:3)
我想你想要quotemeta
:
$next = "trna(tgc)";
$search = quotemeta($next);
if ($data[$i][2]=~/$search/){
//..
}