parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

moko 19.07.2023 03:12

Похоже, дело в смещении указателя при удалении, но простым выводом указателя текущей строки это не подтверждается.
Указатель как раз не меняется, но по текущему указателю после удаления будет следующая строка таблицы, и других вариантов тут вроде как сложно придумать. Это видно, если вывести $t.p после удаления.
Обошёл через locate + delete
Обойти можно и заменой if на while.
В документации никаких тонкостей работы удаления строки не описано.
Да вроде и нет их. Кроме разве что того, что если удаляется последняя строка, текущей становится предпоследняя.

Мне тоже не нравится, что поведение в случае хеша и таблицы отличается, но аналогия не совсем корректна - при удалении из хеша на текущем месте в foreach не остается ничего, а при удалении строки - текущей становится следующая строка, а не "дырка".

P.S.
Redmine не шевелится
- китайцы что-то массово хотели, сейчас на вид OK.