я делаю какой-нибудь текст синтаксический с помощью оператора триггера и мои данные выглядит следующим образом:Оператор Flip-Flop Perl - глобальный государственный вопрос?
COMMAND START
CELL
123
COUNTER1 COUNTER2 COUNTER3
23 25 45
COUNTER1 COUNTER2 COUNTER3
22 34 52
CELL
234
COUNTER1 COUNTER2 COUNTER3
12 35 35
END
Теперь мне нужно перебирать эти данные и для каждой ячейки, найти сумму COUNTER2. Под каждой ячейкой, как мы видим, может быть 1 или более строк COUNTER. Я попытался использовать флип-флоп, как показано ниже, но не работает.
my ($CELL_ID_COL1, $TEMP_COUNT);
my @line_contents;
while (<>) {
chomp;
if(/^COMMAND.*START$/ .. /^END$/) {
if (my $e1 = /^CELL$/ ... (/^CELL$/ || /^END$/)) {
if ($e1 == 2) {
@line_contents = split(/\s+/, $_); #Split the line read on whitespaces
$CELL_ID_COL1 = $line_contents[0];
print "$CELL_ID_COL1\n";
$TEMP_COUNT = 0;
}
if (my $e2 = /^COUNTER1.*COUNTER3$/ ...(/^COUNTER1.*COUNTER3$/ || /^CELL$/ || /^END$/)) {
print "$_\n";
if ($e2 ==2) {
@line_contents = split(/\s+/, $_); #Split the line read on whitespaces
$TEMP_COUNT += $line_contents[1];
}
if ($e2 =~ /E0$/) {
redo;
}
}
if ($e1 =~ /E0$/) {
print "FINAL COUNT is: $TEMP_COUNT\n";
redo;
}
}
}
}
Я думаю, что это что-то делать с глобальным состоянием триггера оператора, описанного в этом question, но не мог понять многое. Пожалуйста, помогите мне.
Большое спасибо.
Привет Брайан, Спасибо большое за помощь. можете ли вы подтвердить, если этот вопрос я столкнулся с моим кодом образца из-за «глобальное состояние флип-флоп-оператора»? С уважением – pkr13
Я не знаю, почему ваш код не работает и я не хотел тратить время на отслеживание ошибки. –