我的代码,
#!/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运算符工作正常。但是当我从文件中获取它时,就会出现问题。皮斯帮助, 提前谢谢!
答案 0 :(得分:2)
如果你不希望它以返回字符结尾,请不要忘记chomp
你的文件输入。
while(my $codes = <FILE>)
{
chomp $codes;
这可能就是你的字符串比较失败的原因。
除了额外的一边外,还要在脚本的顶部包含use strict;
和use warnings;
,就像人们应该一样。
我建议您在进行文件处理时也在顶部包含use autodie;
。它会自动为您提供执行多种操作的详细错误消息,例如打开文件,因此您不必记住在$!
中包含错误代码die
或文件名言。