Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl: вопрос по while и next / 3 сообщений из 3, страница 1 из 1
16.01.2020, 11:31
    #39914727
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl: вопрос по while и next
У меня есть скрипт с таким кодом:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
...
        while (my $row = $sth->fetchrow_hashref)
        {
                my $int = $prefix . $row->{'VID'};
                ...
                my @cfg = &intcfg($int);
                if (!defined($cfg[0]))
                {
                        print "! .$row->{'VID'}: Fail on get configuration: " . Dumper(\@cfg);
                        next;
                }
                my @new = ($cfg[0]);
                ...
                print $new[0].($msg||'')."\n";
                print "$_\n" foreach (@new[1..$#new]);
        }
...


Цикл обрабатывает определенный список, для каждого элемента списка получает определенные строки, модифицирует их и загружает обратно.
Если для элемента списка получить строки не удалось, он этот элемент пропускает, точнее должен пропустить.
Но у меня складывается впечатление (и подтверждается логами), что новая итерация происходит не полностью.
Вот фрагмент лога:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
interface GigabitEthernet0/1.894
 description LL894:*
 shutdown
 exit
interface GigabitEthernet0/1.895
 description LL895:101-6130-02
 exit
! .896: Fail on get configuration: $VAR1 = [];
interface GigabitEthernet0/1.896
 description LL897:*
 shutdown
 exit
interface GigabitEthernet0/1.898
 description LL898:101-4704
Судя по этому логу, для элемента с номером 897 первым элементом сохранилось значение с прошлой итерации.
Может ли быть такое, что при next не выполняется fetchrow_hashref?
...
Рейтинг: 0 / 0
16.01.2020, 18:54
    #39914984
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl: вопрос по while и next
Alibek B.

Судя по этому логу, для элемента с номером 897 первым элементом сохранилось значение с прошлой итерации.
Может ли быть такое, что при next не выполняется fetchrow_hashref?
Нет, такого быть не может. Ищи ошибку в других местах.
Может у тебя есть еще какой-нибудь вложенный цикл? Или просто не корректно собираешь текст для лога?
...
Рейтинг: 0 / 0
16.01.2020, 19:08
    #39914988
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl: вопрос по while и next
Текст для лога собирается и выводится только в приведенных местах, более нигде.
Вложенных циклов нет, есть различные обработки и проверки, но они по идее не должны влиять на переменные, которые объявляются позже.
Расставлю отладочный вывод в разных местах, буду проверять дальше.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl: вопрос по while и next / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]