Perl:搜索文件

时间:2011-10-26 02:49:31

标签: perl

我正在创建一个接收文件的perl脚本(例如./prog文件) 我需要解析文件并搜索字符串。这是我认为可行的,但它似乎不起作用。该文件是每行包含50行的一项工作

@array = < >;   
    print "Enter the word you what to match\n";
    chomp($match = <STDIN>);        

    foreach $line (@array){
        if($match eq $line){
            print "The word is a match";
            exit
        }
    }

1 个答案:

答案 0 :(得分:3)

您正在咀嚼您的用户输入,而不是文件中的行。

他们无法比拟;一个以\n结尾,另一个则不以。摆脱你的chomp应该可以解决问题。 (或者,在您的循环中添加chomp($line)。)

$match = <STDIN>;

foreach $line (@array){
    chomp($line);
    if($match eq $line){
        print "The word is a match";
        exit;
    }
}

编辑,希望OP从以下评论中注意到他的错误:

eq更改为==不会“修复”任何内容;它打破了它。您需要使用eq进行字符串比较。您需要执行以上操作之一来修复代码。

$a = "foo\n"; 
$b = "bar"; 
print "yup\n" if ($a == $b);

输出: