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