我正在创建一个接收文件的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
}
}
答案 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);
输出:
烨