[Moscow.pm] Доступ к настройкам объектов в ваших модулях

Ivan B. Serezhkin ivan на serezhkin.com
Чт Мар 13 09:23:53 PDT 2008


Andrew Shitov wrote:
>> Конфиг евалится, и запихивается в синглтон.
>> Дальше Config->{KEY}->{subkey};
>>     
>
> Если я ничего не путаю, ты в ЖЖ писал о том, что сделал, чтобы
> работало без скобок: Config->KEY->subkey.
>
> Как? Создавал кучу функций или средствами перла? :-)
>   
package CFG;
use strict;
use utf8;
use Data::Dumper;

our $AUTOLOAD;


my $PREFIX='/u0/spstat';
my $inRoute=[qw(CountIp CountNetwork ShinglerTypes ProviderBlackList 
MaskRealSpamers CountMailcious StoreBackLog)];


our $cfg={
          sources=>{ #source => {path,regex,route}
                    mxfront => {
                                path => "$PREFIX",
                                regex => 
qr/mxfront\d+\.\d+\.delivery\.log(\.gz)?/,
                                output 
=>"$PREFIX/all/all.delivery.log",  #where to lay logs;
                                route => $inRoute,
                               },
    . . .
                          }
         };




sub AUTOLOAD {
    my $key=shift;
    my $m=$AUTOLOAD;
    $m=~s/.*:://;
    $key=$cfg if $key eq __PACKAGE__;
    $key=$key->{$m};
    return (ref $key) ? bless $key : $key;
}

sub KEYS {
    return keys %{shift()};
}

sub DESTROY {
}


-- 
Ivan B. Serezhkin



Подробная информация о списке рассылки Moscow-pm