Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Slawa Olhovchenkov                   2:5030/500     06 Sep 2005  14:34:34
 To : Sergey Skvortsov
 Subject : perl модули
 -------------------------------------------------------------------------------- 
 
 
 06 Sep 05, Sergey Skvortsov writes to Slawa Olhovchenkov:
 
  >>  >> А можно кратенько для тех кто в танке и все пропустил?
  >>  >> А то я сейчас man perlmod читаю и основная суть от меня что-то
  >>  >> ускользает.
  >>
  >> А по внутренностям того, что внутри модуля -- разница есть?
  >>
  >>  SS> "require My::Module" - это как "require /path/to/My/Module.pm", но
  >>  SS> загружается лишь единожды.
  >>
  >> Что значит "единожды"?
 
  SS> Если ты дважды в коде вызовешь "require My::Module", то реально он
  SS> загрузится лишь в первый раз. При повторном вызове, если такой модуль уже
  SS> был загружен, ничего не произойдет. Это как #include <my/module.h>:
 
 а несколько require "/path/to/My/Module.pm" выполняться несколько раз? Hа это
 мне наплевать.
 И больше разницы нету?
 
  >>  SS> в целом "require" используется ну очень редко.
  >>
  >> редко? почему?
 
  SS> потому что есть "use" и packages лучше скриптов.
 
 Так и require с теми же packages работает.
 
  >>  SS> use My::Module;
  >>  SS> use My::Module::Admin;
  >>  SS> use My::Module::User;
  >>
  >> Вот от такого списка хочется избавится. Хочется просто понакидать в
  >> каталог нужный набор модулей, а тут автомагическим циклом его
  >> активировать. В целом понято -- в центральном скрипте readdir с require
  >> "$file", в модуле что-то типа BEGIN { $main::common_hash{'ident_module'}
  >> = \&sub_module; };
 
  SS> Тогда возвращаясь к истокам - это идеологически неправильно.
  SS> Если очень хочется - лучше использовать lazy evaluation:
 
  SS> (my $action) = ($query->path_info =~ /^(\w+)/;
  SS> my $class = 'My::Module::'.$action;
 
  SS> # try load specific handler
  SS> eval "use $class;";
 
  SS> unless($@)  {
  SS>     $class->process();
  SS> }else   {
  SS>     # fallback
  SS> }
 
 Фига-с два. Hе будет это работать, поскольку ни контроля ни старта нету. Грубо
 говоря при запуске без параметров я хочу нарисовать простыню с общим смыслом
 "вот такие основные action у нас сегодня доступны". Hу с BEGIN мне и самому уже 
 разонравилось, я больше сейчас склоняюсь к чему-то типа readdir, потом require
 "$file" и в том же цикле $common_hash{$module::ident} = \&$module::action;
 
 ... Истинная цена живого человеческого общения -- счета от пpовайдеpа
 --- GoldED+/BSD 1.1.5
  * Origin:  (2:5030/500)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 perl модули   Slawa Olhovchenkov   05 Sep 2005 15:52:32 
 Re: perl модули   Andrey S. Zakharajashchev   05 Sep 2005 16:04:52 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 16:08:40 
 Re: perl модули   Dmitry Sukhodoev   05 Sep 2005 16:15:50 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 16:27:38 
 Re: perl модули   Dmitry Sukhodoev   06 Sep 2005 08:50:29 
 perl модули   Slawa Olhovchenkov   06 Sep 2005 10:09:12 
 Re: perl модули   Dmitry Sukhodoev   06 Sep 2005 10:55:10 
 perl модули   Slawa Olhovchenkov   06 Sep 2005 10:59:50 
 Re: perl модули   Eugene Grosbein   06 Sep 2005 13:54:26 
 perl модули   Slawa Olhovchenkov   06 Sep 2005 11:05:02 
 Re: perl модули   Sergey Skvortsov   05 Sep 2005 16:49:29 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 16:55:14 
 Re: perl модули   Sergey Skvortsov   05 Sep 2005 17:23:17 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 17:31:24 
 Re: perl модули   Sergey Skvortsov   05 Sep 2005 17:50:30 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 17:58:48 
 Re: perl модули   Sergey Skvortsov   05 Sep 2005 18:24:16 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 18:38:48 
 Re: perl модули   Sergey Skvortsov   05 Sep 2005 20:04:37 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 20:14:10 
 Re: perl модули   Sergey Skvortsov   05 Sep 2005 21:57:19 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 22:02:38 
 Re: perl модули   Sergey Skvortsov   05 Sep 2005 23:01:08 
 perl модули   Slawa Olhovchenkov   05 Sep 2005 23:08:18 
 Re: perl модули   Sergey Skvortsov   06 Sep 2005 14:14:29 
 perl модули   Slawa Olhovchenkov   06 Sep 2005 14:34:34 
 perl модули   Slawa Olhovchenkov   07 Sep 2005 11:10:32 
 Re: perl модули   Sergey Skvortsov   07 Sep 2005 12:45:32 
 perl модули   Slawa Olhovchenkov   07 Sep 2005 12:57:00 
 Re: perl модули   Sergey Skvortsov   07 Sep 2005 15:49:56 
 perl модули   Slawa Olhovchenkov   07 Sep 2005 19:37:46 
 mod_perl (was Re: perl модули)   Alex L Demidov   06 Sep 2005 17:27:33 
 Re: perl модули   Dmitry Sukhodoev   06 Sep 2005 09:03:40 
 perl модули   Slawa Olhovchenkov   06 Sep 2005 10:10:56 
 perl модули   Lev Serebryakov   06 Sep 2005 00:03:18 
 Re: perl модули   Dmitry Sukhodoev   06 Sep 2005 08:59:37 
 Re: perl модули   Dmitry Sukhodoev   06 Sep 2005 08:58:06 
 perl модули   Slawa Olhovchenkov   06 Sep 2005 10:09:54 
 perl модули   Lev Serebryakov   06 Sep 2005 00:00:02 
 perl модули   Slawa Olhovchenkov   06 Sep 2005 00:35:38 
Архивное /ru.unix.bsd/2221431d7249.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional