[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