[SP-pm] Compartilhar infos em aplicações, logs, arquivos de configuração e parâmetro

Andre Carneiro andregarciacarneiro at gmail.com
Thu Aug 1 13:24:40 PDT 2013


>1. Nos scripts bash eu uso o logger para gravar as informações de log,
pois o syslog se encarrega das estratégias de >arquivamento, compactação,
envio de e-mail, etc. Em Perl qual a melhor maneira de interagir com o
syslog? Ou devo usar >outra estratégia de log?

Se é melhor eu não sei, mas você pode usar módulos como o Log::Log4Perl,
por exemplo. Tem uma solução bem abrangente para logs.

>2. Preciso de arquivos de configuração, para guardar IPs, caminhos,
portas, etc. Hoje tenho um arquivo texto que gravo pares >dado=valor, um
por linha, e faço a leitura na mão. Como devo fazer em Perl e qual o melhor
formato? As vezes tenho que >gravar dados sensíveis, como senhas.

Config::General ou o prórprio Config::Any pode te ajudar com isso. Eu uso o
Config::General por costume, e porque me resolve tudo o que eu preciso em
termos de arquivo de configuração. Mas os dois são muito bons!

>3. Os parâmetros são uma pedra no sapato. Hoje meus scripts (Bash e Perl)
tem uma ordem que os parâmetro  devem ser >passado, e se não for passar
algum parâmetro tenho que colocar no lugar um par "" e dentro do script ler
um por um fazendo >os tratamentos com intermináveis "IFs". Gostaria de usar
parâmetros como o próprio Perl, tipo -<letra ou nome do parâmetro>><valor
do parâmetro>, sem me preocupar com ordem. Como fazer? Módulo, técnica ...

Getopt::Long resolve isso para você.


>4 ...

Bom, daemons eu costumo resolver com o Daemon::Generic. É quase um
'framework' para daemons feito em Perl.

A essa altura do campeonato você já deve ter percebido que muitas vezes
esse site: http://search.cpan.org funciona melhor do que o Google. :-D


Proost!


2013/8/1 Andre Carneiro <andregarciacarneiro at gmail.com>

>
> Um Memcached da vida resolve muito bem(dependendo do que você precisa
> fazer), de maneira muito simples e com excelente desempenho e ainda por
> cima não tem um  XML sequer pra estragar o dia...
>
>
> Proost!
>
>
> 2013/8/1 Tiago Peczenyj <tiago.peczenyj at gmail.com>
>
>> Sockets são uma forma segura e portavel de fazer isso.
>>
>> Não se pode pensar apenas em Windows e Linux, vc tem o mundo BSD, o mundo
>> Solaris, etc.
>>
>>
>> 2013/8/1 Alceu Rodrigues de Freitas Junior <glasswalk3r at yahoo.com.br>
>>
>>> Em 31-07-2013 13:38, Marcio - Google escreveu:
>>>
>>>> Sobre o item 4, quando trabalhava com .Net/C#, eu usava mensagens entre
>>>> os processos, usando a API do Windows mesmo. Particularmente acho a
>>>> maneira mais elegante e eficiente no Windows.
>>>>
>>>> Se no Perl/Linux tiver como fazer isso, acho que está resolvido a
>>>> dúvida. Exceto se alguém tiver algo contra.
>>>>
>>>
>>> Sobre qual recurso exatamente você está falando do .Net? Provavelmente
>>> Perl possui alguma coisa parecida. Execute num shell
>>>
>>> perldoc perlipc
>>>
>>> E você vai ter uma introdução sobre como fazer comunicação entre
>>> processos. Existem inúmeras técnicas diferentes para fazer isto, mas como
>>> você tem um processo pai e N processos filhos, você deveria tentar usar
>>> named pipes, sockets ou até mesmo um sistema de fila de mensagens como o
>>> RabbitMQ ou ActiveMQ, mas este último só seria interessante se os processos
>>> filhos pudessem postar uma mensagem para o processo pai e continuarem
>>> trabalhando em seguida. Do contrário, o melhor é fazer comunicação síncrona.
>>>
>>> []'s
>>> Alceu
>>>
>>> =begin disclaimer
>>>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>> L<http://mail.pm.org/mailman/**listinfo/saopaulo-pm<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> >
>>> =end disclaimer
>>>
>>
>>
>>
>> --
>> Tiago B. Peczenyj
>> Linux User #405772
>>
>> http://about.me/peczenyj
>>
>> =begin disclaimer
>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>>
>
>
> --
> André Garcia Carneiro
> Software Engineer
> (11)982907780
>



-- 
André Garcia Carneiro
Software Engineer
(11)982907780
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130801/d6eece51/attachment.html>


More information about the SaoPaulo-pm mailing list