Perl:当=〜没有时,为什么eq会工作?

前端之家收集整理的这篇文章主要介绍了Perl:当=〜没有时,为什么eq会工作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
工作代码

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进行精确的字符串比较.

猜你在找的Perl相关文章