четверг, августа 09, 2007

Мощь Perl

Наткнулся в комментах ru_perl на такое:
Достаточно BEGIN { no strict 'refs'; *{'B::g'} = \&{'A::f'}; } в любом месте исходника и функция A::f(...) становится видна в пакете B как g(...). Возможность такого копирования функций тоже предлагаете описывать? И все тонкости, которые при этом происходят?

Или, например, то что "no strict 'refs'; local *{'B::g'} = *{'B::g'} ; *{'B::g'} = \&{'A::f'};"
делает все обращения к B::g(...) обращениями к A::f(...) в текущем блоке?
Тут в принципе добавить нечего, при всех минусах perl'а есть вещи которые иногда радуют (даже если видишь их уже не в первый раз). И даже если в реальности такое я не использую, но наличие самой возможности(а вдруг завтра война? :) ) греет душу.

Комментариев нет: