Anatoly Vorobey (avva) wrote,
Anatoly Vorobey
avva

  • Mood:

рабочее



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

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

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

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

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

  • заявление-ножницы

    Русский фейсбук шатает уже несколько дней от записи Лиды Мониавы. "Сейчас няня из «Дома с маяком» оформила опеку над еще одним паллиативным…

  • о дырках

    Есть древняя история о том, как много десятков лет назад во время разработки новой модели самолета, одного чувака назначили ответственным за то,…

  • переквалифицируюсь

    Прошел забавный грамматический тест на знание английского - точнее, на определение того, какой диалект вы знаете, и какой язык у вас родной. Они…

  • 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

  • заявление-ножницы

    Русский фейсбук шатает уже несколько дней от записи Лиды Мониавы. "Сейчас няня из «Дома с маяком» оформила опеку над еще одним паллиативным…

  • о дырках

    Есть древняя история о том, как много десятков лет назад во время разработки новой модели самолета, одного чувака назначили ответственным за то,…

  • переквалифицируюсь

    Прошел забавный грамматический тест на знание английского - точнее, на определение того, какой диалект вы знаете, и какой язык у вас родной. Они…