Anatoly Vorobey (avva) wrote,
Anatoly Vorobey
avva

  • Mood:

рабочее



Очередной глюк Перла.

Если обрабатывающий блок внутри таких команд циклической обработки, как grep, map итп., вызывает функцию, а эта функция каким-то образом меняет $_, это нарушает работу цикла. При этом обычное использование $_ внутри таких же grep/map или for/foreach не мешает, т.к. они локализуют $_ внутри себя, используя отдельную копию. Но в данном случае grep вызывал функцию, а она вызывала другую функцию, а та читала файл через конструкцию типа while(<>) — и это вызывало глюки в цикле grep, с которого всё началось. Потому что while(<>) не локализует $_, в отличие от for/foreach, а использует глобальную переменную.

Какого хрена стандартная контрольная конструкция в языке должна глючить отттого, что какая-то функция на несколько уровней вызовов ниже использует какую-то переменную тоже вполне стандартным способом? Где модуляризация, [censored]?

Угрохал сегодня на это два часа. В конце концов, когда разобрался наконец, почему grep выдаёт мне полню херню, исправил это с помощью уродливого кладжа.

Сегодня я тоже Ненавижу Перл (tm).
Subscribe

  • бороться до конца

    Понравился вопрос в твиттере, примерно в таком духе: "За какое литературное произведение вы готовы бороться до конца? Это должно быть что-то…

  • корешки

    Полное издание сочинений Канта в издательстве Кэмбриджского университета страдает от некоторой... беспорядочности в высоте книг и дизайне…

  • почитать

    Решил, что начну 2024 с одного из непрочитанных романов Джейн Остин; пусть это будет Persuasion ("Доводы рассудка"). С какой книги вы планируете…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 20 comments

  • бороться до конца

    Понравился вопрос в твиттере, примерно в таком духе: "За какое литературное произведение вы готовы бороться до конца? Это должно быть что-то…

  • корешки

    Полное издание сочинений Канта в издательстве Кэмбриджского университета страдает от некоторой... беспорядочности в высоте книг и дизайне…

  • почитать

    Решил, что начну 2024 с одного из непрочитанных романов Джейн Остин; пусть это будет Persuasion ("Доводы рассудка"). С какой книги вы планируете…