[SP-pm] E eu não usei AUTOLOAD... [Was: Boas vindas ao Igor Sutton Lopes]
Igor Sutton
igor.sutton em gmail.com
Terça Fevereiro 13 08:55:56 PST 2007
> Bom, na verdade, os accessors são para uma função.
> Eu estou mantendo um sistema legado de Logging (por favor não me
> falem em substituição, não é possível, tem de seguir com o que a
> gente tem).
> Um bárbaro desenvolveu um wrapper em torno do Sys::Syslog (não
> muito mau) para fazer registro das atividades.
> Para facilitar a vida dele (e de todo mundo), ele gerou as
> funcionalidades dos log-levels, mais ou menos assim:
>
> foreach $level ( @loglevels ){
> *{$level} = sub { my $self = shift; my $msg = shift; $self->log
> ( $level, $msg ); };
> }
>
> Desculpem pela amostra barata. Os NDAs que eu assinei não permitem
> código de verdade, mas isso dá para o gasto.
>
> Claro, gerar accessors cada vez que você inicia um modulo de log -
> que é uma coisa que os caras deixam morrer com o contexto
> praticamente o tempo todo, preocupados com buffer flushing (vai
> entender a ligação...)
>
> O que eu fiz foi fixar os log-levels (não eram fixos, nem
> padronizados) e escrever os "accessors" para as funções à mão.
>
> Agora vou criar o pacotinho (alguém indica um tutorial para
> marinheiro de primeira viagem?) para o deployment, e amanhã vamos
> colocar na produção.
Você pode utilizar o Module::Starter, prá criar a estrutura do módulo.
Depois de feito isso, o caminho padrão para "compilar" o pacote (perl
Makefile.PL). Se for Debian, pode usar aquele dh-make-perl, se for BSD
pode usar o trio "make && make test && make install", que o Perl do
BSD se encarrega de registrar no ports (pelo que eu me lembre).
--
Igor Sutton Lopes <igor.sutton em gmail.com>
Mais detalhes sobre a lista de discussão SaoPaulo-pm