+ -
当前位置:首页 → 问答吧 → perl的字符串相等问题

perl的字符串相等问题

时间:2011-08-09

来源:互联网

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

作者: 年年年   发布时间: 2011-08-09

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

作者: 年年年   发布时间: 2011-08-09

学习路过

作者: liusongguang   发布时间: 2011-08-09

$_ 里面有末尾的换行符。
if前加
  1. chomp;
复制代码
把换行符吃掉即可

作者: alick   发布时间: 2011-08-09

4# alick


谢谢!

作者: 年年年   发布时间: 2011-08-09

绝对支持,顶顶顶

作者: rainshine1190   发布时间: 2011-08-09

相关阅读 更多

热门下载

更多