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


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Sergey Skvortsov                     2:5020/400     07 Sep 2005  15:49:56
 To : Slawa Olhovchenkov
 Subject : Re: perl модули
 -------------------------------------------------------------------------------- 
 
 Slawa Olhovchenkov wrote:
 
 > 
 > Hу я же объяснял, что данный кусок универсальный и не зависит от количества
 > плагинов и их функциональности. Все это он должен определять динамически, в
 > момент запуска. Hу и лежит это все не в системных каталогах.
 
 Я бы сделал так:
 1. положил модули в отдельный каталог:
 /usr/local/www/
               lib/
                  My/Module/
                           Plugin1.pm
                           Plugin2.pm
         ...
 
 script.cgi:
 ================
 use strict;
 use warnings;
 
 use lib '/usr/local/www/lib/';
 
 my $PLUGIN_DIR = '/usr/local/www/lib/My/Module/';
 my $class_prefix = 'My::Module::';
 
 my %MODULES;
 
 opendir(my $dh, $PLUGIN_DIR) || die "can't opendir('$PLUGIN_DIR'): $!";
 while(my $file = readdir($dh)) {
   next
    unless $file =~ /^(\w+)\.pm$/;
 
   my $class = $class_prefix.$1;
   eval "use $class;";
   die $@ if $@;
 
   $MODULES{ $class->ident } = $class;
 }
 closedir $dh;
 
 # PROCESS REQUEST
 (my $action) = ($query->path_info() =~ m!^([^/]+)!);
 
 die "bad action '$action'"
   unless exist $MODULES{$action};
 
 my $class = $MODULES{$action};
 $class->action($query);
 
 Plugin1.pm
 ================
 package My::Module::Plugin1;
 use strict;
 
 sub ident { 'plugin1'; }
 
 sub action { ... }
 
 1;
 
 > Так что, без eval в этом месте -- никак?
 
 Hикак. Разве что 'no strict "refs"' - но это пошло.
 Ты же в динамике всё это загружаешь.
 
 -- 
 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/65775cfd93b6.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional