PERL поиск информации по всему документу

Есть некий файл test.txt, в котором 1000+ строк Как на языке PERL написать скрипт, чтобы когда читался файл, и находил одну или более строчек с надписью difference found, то выдавал error, а в противном случае, если таких строчек нет, то меседж ОК ?


Ответы (1 шт):

Автор решения: Кирилл Новгородцев
#!/usr/bin/env perl
use strict;
use warnings;
use List::Util qw(first);

open my $FILE, "<", "test.txt" or die $!;
my $error = first { /difference found/ } <$FILE>;
close $FILE;

print $error ? "error" : "ok";

По сути, всё самое интересное происходит в строке my $error = first { /difference found/ } <$FILE>;. В этой стркое происходит чтение файла построчно и проверка каждой строки на вхождение. Для короткого цикла используйте функцию first из модуля List::Util. Описание этой функции можно прочесть в документации: https://metacpan.org/pod/List::Util#first

→ Ссылка