Perverse Engineering

Jul 11, 2008 00:48



Освоил "Intermediate Perl" aka Alpaca Book. На этот раз английскую.



По сути продолжение весьма удачной "Learning Perl" aka Llama book. Такой же проверенный временем формат с задачками в конце глав. Зверёк стал попушистее.

Из того, что очень важно и полезно -- в первую очередь ссылки. Ссылки на всевозможные структуры, файлхэндлы и функции. Ссылки -- это круто, особенно на анонимные массивы, хэши и функции. Этого реально не хватало. Рассказано и про замыкания (closures) =) Здоровские хитрые сортировки в функциональном стиле.

Из другого полезного -- модули. И использование, и создание, и тестирование (!). Тоже ценно, тесты рулят.

И ещё одна большая тема -- объекты. Вот при прочтении её постоянно возникало ощущение, что всё ООП перла сделано через жопу и сплошными костылями. Есть интересные штуки типа UNIVERSAL (как бы базовый класс для всего) или AUTOLOAD (генерация методов по запросу). Но вот в целом... Наследование через спец.массив, своеобразное создание экземпляров класса через привязку к обычной переменной путём bless (хотя наверняка благодаря этому возможны разные интересные игры), всякие псевдоклассы-псевдометоды SUPER, DESTROY, и те же UNIVERSAL с AUTOLOAD -- всё это оставляет общее ощущение извратности и отсутствие желания пользоваться объектами без крайней на то необходимости.

Оказывается, с ошибками в книгах косячат не только наши издатели, O'Reilly это тоже не чуждо. Среди решений задач есть явно неправильное, когда заявляют о создании копии массива дабы не попортить оригинал, а на деле передают ссылку и портят всё как надо.

Ну да ладно, книжка в целом весьма полезна. Будем считать это событие приуроченным к ICFPC-2008. И да поможет нам завтра Ахура-Мазда =)

P.S. Хоссподи, когда ж я снова к плюсам вернусь? Наверно, уже никогда =)

perl

Previous post Next post
Up