红联Linux门户
Linux帮助

perl的字符串相等问题

发布时间:2011-08-09 11:06:19来源:红联作者:年年年
在perl里面两个字符串相等判断用eq。。
如今我写了:
$a="abc";
open IN,"< file"; ## file里面只有“abc”一行
while ()
{
if ($_ eq $a)
{
print “match”."\n";
}
}
这里问题出现了,系统没有报错,但是 if 判断没有执行。。。
这是为什么?我当初觉得是$_变量问题,我把$_给了$temp,再用$temp与$a做eq判断,但是结果还是一样。
在这个while里面怎样判断当前输入的行与之前设定好的行相等?
跪求高手指点吖~~
文章评论

共有 6 条评论

  1. D调漫步 于 2011-08-11 17:27:04发表:

    路过

  2. rainshine1190 于 2011-08-09 18:51:45发表:

    绝对支持,顶顶顶

  3. 年年年 于 2011-08-09 13:10:22发表:

    4# alick


    谢谢!

  4. alick 于 2011-08-09 12:46:35发表:

    $_ 里面有末尾的换行符。
    if前加[code]chomp;[/code]把换行符吃掉即可

  5. liusongguang 于 2011-08-09 12:29:44发表:

    学习路过

  6. 年年年 于 2011-08-09 12:01:16发表:

    没人?!自己顶一个!
    这里有另外一种方法:
    $a="abc";
    $b=quotemeta($a);
    open IN,"< file"; ## file里面只有“abc”一行
    while ()
    {
    if(/^$b$/)
    {
    print “match”."\n";
    }
    }
    但是我还是想知道为什么$_的不行?