[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