[sisyphus] Re: [sisyphus] Давайте спорить. О Perl?
Mikhail Zabaluev
=?iso-8859-1?q?mhz_=CE=C1_alt-linux=2Eorg?=
Ср Май 23 12:58:25 MSD 2001
Hello Alexey,
On Wed, May 23, 2001 at 08:44:19AM +0700, Alexey Morozov wrote:
>
> Mikhail Zabaluev wrote:
>
> >А что, и расскажу. Когда мы с Дмитрием обсуждали авто-зависимости для
> >Perl, никаких общепринятых схем, кроме perl-Some-Module в имени
> >пакета, на горизонте не было. Выбранная схема позволяет включать в
> >
> Гхм. Насколько я понимаю ситуацию, уже в 98 году у меня были модули,
> собранные именно через perl(Test::Module) :-)
Дистрибутив, plz. Это вряд ли был RH или Mandrake, с которыми имеет
смысл хотя бы декларировать совместимость.
> >зависимости не только .pm-модули, но и .pl, .ph и -- теоретически --
> >любые другие. Почитайте внимательно TFM: оператор require допускает
> >явную файловую форму, а также разделитель "'" вместо "::". Вы уже
> >
> Я это знаю. Я профессиональный писатель на perl (ну, нет, разумеется, не
> только :-)) Я даже знаю, что require можно заменить на do +
> манипулирование %INC :-). А в некоторых, совсем клинических местах
> (например, у меня) встречается
>
> $module = get_app_name($somedata);
> eval "require $app"; # Вот именно так, в строчном контексте, чтобы не
> колбасить руками преобразование Test::Module -> Test/Module.pm :-)
>
> Я это все знаю. Более того, пользуюсь. И поэтому не могу сказать: "а, вы
> все дураки, один я Д'Артаньян". Но думать надо. Вы не задумывались над
> тем, что бы пытаться грузить модуль, а потом анализировать изменения в
> %INC? По-видимому, это даст нам _минимальный_ набор требуемых модулей,
> хотя, конечно, если модули цепляются через require, там придется еще
> подумать, а удается ли их зацепить таким вот образом. Короче, надо
думать...
Загрузка модуля через use чревата побочными эффектами, а в некоторых
файлах есть злостные блоки, которые выполняются при компиляции. Можно,
конечно, грузить их в сейфе с запретом на опасные операции, но все же
надежность и здравость такого решения в плане влияния на процесс
сборки сомнительна. Тормозить все это будет точно.
> >ненавидите Perl так, как ненавижу его я? :)
> >
> "Это наша родина, сынок" :-)
Ну нееет. Я уже собрал свой чемодан для переезда в Python.
> > Во всем этом разнобое самыми надежными выглядят имена файлов.
> >
> Собственно, большой разницы, что цеплять perl(Test/Module.pm) или
> perl(Test::Module) я не вижу (разве что, второе более наглядно и,
> наверное, более портабельно между системами :-)).
Вы видели где-нибудь эти зависимости perl(Test::Module)? Я,
признаться, долго не подымал головы, чтобы поглядеть через забор...
> Но вот как эти
> Test::Module выбирать - это вопрос...
Повторюсь, этот вопрос мы однажды обдумали и решили так, как
решили. Какой-нибудь foo/bar.ph ведь не запишешь через
двоеточия. Кстати, почему я не слышу ругательств насчет версий с
эпохами? :)
> >>Нет, я еще раз повторю, я не знаю, как правильно. Возможно, совсем
> >>правильно, но ломово - руками.
> >>
> >Истинно так. AutoReq и AutoProv - подпорки, которые не должны
> >полностью заменять высшую нервную деятельность. Они должны работать
> >
> Глядя на размер CPAN начинаешь тосковать по более полезному применению
> "высшей нервной" :-)
На самом деле, плохого для наших скриптов кода в популярных модулях
не так уж и много. Авторы правильного Perl не такие уж и грязные
недисциплинированные хакеры, как можно себе представить :)
И потом, никто не собирается паковать в дистрибутив весь CPAN.
Оставьте кучу там, где ей лежать хорошо.
--
Stay tuned,
MhZ JID: mookid на jabber.org
___________
Laugh when you can; cry when you must.
Подробная информация о списке рассылки Sisyphus