perl - 从文件中获取一行时,字符串比较失败。

时间:2014-04-25 22:42:41

标签: perl

我的代码,

#!/usr/bin/perl -w
use strict;
use warnings;


my $codes=" ";
my $count=0;
my $str1="code1";
open (FILE, '/home/vpnuser/testFile.txt') or  die("Could not open the file.");

while($codes=<FILE>)
{
        print($codes);
        if($codes eq $str1)
        {       
                $count++;
        }
}         
print "$count";

比较总是失败。我的testFile.txt包含一个简单的行 - code1 当我写了一个单独的perl脚本,我在脚本中声明了两个字符串,而不是从文件中获取它,eq运算符工作正常。但是当我从文件中获取它时,就会出现问题。皮斯帮助, 提前谢谢!

1 个答案:

答案 0 :(得分:2)

如果你不希望它以返回字符结尾,请不要忘记chomp你的文件输入。

while(my $codes = <FILE>)
{
    chomp $codes;

这可能就是你的字符串比较失败的原因。

除了额外的一边外,还要在脚本的顶部包含use strict;use warnings;,就像人们应该一样。

我建议您在进行文件处理时也在顶部包含use autodie;。它会自动为您提供执行多种操作的详细错误消息,例如打开文件,因此您不必记住在$!中包含错误代码die或文件名言。