工作代码:
if ( $check1 eq $search_key ...
以前的’buggy’代码:
if ( $check1 =~ /$search_key/ ...
单词(在$check1和$search_key中)应该是相同的,但为什么第二个单词不会一直返回true?这些有什么不同?
$check1是通过拆分获得的. $search_key在(“word”)之前或在运行时输入:(<>),然后两者都被传递给子程序.
还有一个问题是,我可以在没有任何隐藏问题的情况下转换以下内容吗?
if ($category_id eq "subj") {
我想能够说:=〜/ subj /以便“主题”仍然是真的.
提前致谢.
解决方法
$check1 =〜/ $search_key /不起作用,因为$search_key中的任何特殊字符都将被解释为正则表达式的一部分.
而且,这确实测试$check1是否包含子串$search_key.你真的想要$check1 =〜/ ^ $search_key $/,虽然由于上面提到的原因它仍然是不正确的.
更好地坚持使用eq进行精确的字符串比较.