Я просматриваю журнал ошибок для ключевого слова «предупреждение». Когда я нахожу это, есть конкретный случай предупреждения, который закончит информацию, относящуюся к предупреждению, только с символом новой строки. То, что я хочу сделать, - это проверить этот журнал ошибок, найти предупреждение по ключевому слову, продолжать пропускать файл, пока я не найду ТОЛЬКО символ новой строки, а затем, как только я его найду, проанализирую этот фрагмент и распечатаю его.Grabbing Chunks данных из файла в Perl
формат будет что-то вроде этого:
Warning! blah
blah
blah
orange
Warning! blah
blah
red
blah
Warning!
blah
blah
blah
yellow
Вот мой код до сих пор: использования строго; использовать предупреждения;
my $file = $ARGV[0];
my $count = 0;
open(LOG, "<",$file) or die "cannot open < input: $!";
my $line = <LOG>;
while($line ne "")
{
if($line =~ /warning/i)
{
while($line !~/\A\n\z/)
{
if($line =~ /red/ || $line =~ /yellow/ ||$line =~ /black/)
{
$count++;
}
print($line);
$line = <LOG>;
}
print("Just finished a chunk.\n");
}
$line = <LOG>;
}
print($fix, "\n");
Однако, это бесконечный цикл, который постоянно вызывает ошибки, и я не знаю почему.
Как переменная $/влияет на оператор в то время? –
'$ chunk' заполняется несколькими строками и читает их, пока не дойдет до двух символов' \ n \ n'. –
Извините, немного новый для perl. «chunk» не является специальным ключевым словом, не так ли? Или ключевое слово: «$ /» ссылается на «переменная, которую я буду определять далее»? –