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


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Sergey Skvortsov                     2:5020/400     06 Sep 2005  14:14:29
 To : Slawa Olhovchenkov
 Subject : Re: perl модули
 -------------------------------------------------------------------------------- 
 
 Slawa Olhovchenkov wrote:
 
 > 
 >  >> А можно кратенько для тех кто в танке и все пропустил?
 >  >> А то я сейчас man perlmod читаю и основная суть от меня что-то
 >  >> ускользает.
 > 
 > А по внутренностям того, что внутри модуля -- разница есть?
 > 
 >  SS> "require My::Module" - это как "require /path/to/My/Module.pm", но
 >  SS> загружается лишь единожды.
 > 
 > Что значит "единожды"?
 
 Если ты дважды в коде вызовешь "require My::Module", то реально он
 загрузится лишь в первый раз. При повторном вызове, если такой модуль уже
 был загружен, ничего не произойдет. Это как #include <my/module.h>:
 
 #ifndef _MY_MODULE_
 #define _MY_MODULE_
 ...code
 #endif
 
 >  SS> "use My::Module (@args)" - это лишь "require My::Module;
 >  SS> My::Module->import(@args)".
 > 
 >  SS> в целом "require" используется ну очень редко.
 > 
 > редко? почему?
 
 потому что есть "use" и 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; };
 
 Тогда возвращаясь к истокам - это идеологически неправильно.
 Если очень хочется - лучше использовать lazy evaluation:
 
 (my $action) = ($query->path_info =~ /^(\w+)/;
 my $class = 'My::Module::'.$action;
 
 # try load specific handler
 eval "use $class;";
 
 unless($@) {
   $class->process();
 }else  {
   # fallback
 }
 
 -- 
 Sergey Skvortsov
 mailto: skv@protey.ru
 --- ifmail v.2.15dev5.3
  * Origin: Demos online service (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 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/6577d06357eb.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional