Perl: поиск файла - PullRequest
       1

Perl: поиск файла

1 голос
/ 26 октября 2011

Я создаю 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 Ответ

3 голосов
/ 26 октября 2011

Вы комментируете свой пользовательский ввод, но не строки из файла.

Они не могут совпадать; один заканчивается на \n другой нет. Избавление от вашего chomp должно решить проблему. (Или, добавив chomp($line) в ваш цикл).

$match = <STDIN>;

или

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

Редактировать в надежде, что ФП заметит свою ошибку из комментариев ниже:

Изменение eq на == ничего не "исправляет"; это ломает это. Вам нужно использовать eq для сравнения строк. Вам нужно сделать одно из вышеперечисленного, чтобы исправить свой код.

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

Выход:

1027 * да *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...