[SP-pm] Monitorar Arquivo de Log

Hernan Lopes hernanlopes at gmail.com
Tue Oct 22 19:25:31 PDT 2013


Márcio,

Ha um tempo atrás, iniciei um tutorial para casos como o seu onde a pessoa
precisa de uma mãozinha:

https://github.com/hernan604/Tutorial-Regex-PT-BR

Se você ler ele, na parte de grupos eu mostro como agrupar os caracteres e
atribuir os mesmos nas variáveis. ie: (?<ano>...) e depois acessar com
$+{ano}

Segue um exemplo, que demonstra o retorno de uma regex, no caso é uma
lista. Isso é importante para aproveitar o tipo esperado.
Como é uma lista, é possível 'equalizar' a lista da esquerda com os itens
respectivos da lista da direita ($ble1, $ble2, $ble3).

perl -e ' my $str = "bla1 bla2 bla3"; my @matches = $str =~ m/bla\d/g; use
Data::Printer; warn p @matches; my ( $ble1, $ble2, $ble3 )=  $str =~
m/bla\d/g; warn $ble1,$ble2,$ble3 ; my @matches2 = my ( $ble1, $ble2, $ble3
)=  $str =~ m/bla\d/g; warn p @matches2'

vc pode usar o método acima, ou pode usar captura de grupos nomeadas

De qualquer maneira se quiser contribuir com suas solucões no tutorial,
fique a vontade.

[]s

Hernan



2013/10/22 Marcio - Google <marciorp at gmail.com>

> Blz, já consigo separar os dados e tal, mas agora to precisando de outra
> regex e não consegui montar.
>
> Preciso localizar e atribuir a uma variável, uma data válida no meio de
> uma string. Não sei em que posição ela vai estar, e o formato varia entre
> DD/MM/AA ou DD/MM/AAAA.
>
> Também preciso separar e atribuir a uma variável um valor numérico com
> duas casa decimais. Não sei o tamanho nem posição, exceto que o separador
> decimal é , e tem duas casas decimais.
>
> Dicas?
>
>
> [...]'s
>
> Marcio
>
> ========================================
> ########### Campanha Ajude o Marcio! ###########
> http://sosmarcio.blogspot.com.br/
> http://www.vakinha.com.br/VaquinhaP.aspx?e=195793
> ========================================
>
>
> Em 22 de outubro de 2013 22:19, Marcio - Google <marciorp at gmail.com>escreveu:
>
> Marcelo+++++
>>
>> Valeu, precisava remover os espaços mesmo ... :-)
>>
>>
>>
>> [...]'s
>>
>> Marcio
>>
>> ========================================
>> ########### Campanha Ajude o Marcio! ###########
>> http://sosmarcio.blogspot.com.br/
>> http://www.vakinha.com.br/VaquinhaP.aspx?e=195793
>> ========================================
>>
>>
>> Em 22 de outubro de 2013 21:53, Marcelo Milhomem <milhomem at is4web.com.br>escreveu:
>>
>>>  Segue um exemplo rápido com escape --comentado-- ou com um regex
>>> simples pra remover os espaços:
>>>
>>> my $line = "T|blablablabla |blabla     | mais blabla bla  ";
>>> chomp $line;
>>> #my @p = split /\|/, $line;
>>> my @p = split /\s*\|\s*/, $line;
>>> print $p[0] . "\n";
>>> print $p[1] . "\n";
>>> print $p[2] . "\n";
>>> print $p[3] . "\n";
>>>
>>> Att,
>>> Marcelo Milhomem
>>>
>>>  Em 22/10/2013 22:49, Renato Santos escreveu:
>>>
>>> É só usar @p = split /\|/,  $texto
>>> On Oct 22, 2013 10:47 PM, "Marcio - Google" <marciorp at gmail.com> wrote:
>>>
>>>>  Cron, nada sério. Só procurando informações em arquivos de log ...
>>>>  Tentei uns exemplos de regex mais não consegui também. Você sabe de
>>>> kbç?
>>>>
>>>>
>>>> [...]'s
>>>>
>>>> Marcio
>>>>
>>>>   ========================================
>>>> ########### Campanha Ajude o Marcio! ###########
>>>> http://sosmarcio.blogspot.com.br/
>>>> http://www.vakinha.com.br/VaquinhaP.aspx?e=195793
>>>>  ========================================
>>>>
>>>>
>>>> Em 22 de outubro de 2013 21:44, Renato Santos <renato.cron at gmail.com>escreveu:
>>>>
>>>>> Regular expressions.. Você precisa escapiar o pipe.
>>>>>
>>>>> Obs: você devia usar o text::csv::xs se isso for sério!
>>>>>  On Oct 22, 2013 10:32 PM, "Marcio - Google" <marciorp at gmail.com>
>>>>> wrote:
>>>>>
>>>>>>  Mestres, desculpem a newbieçe, mas to apanhando do split.
>>>>>>
>>>>>>  my $line = "T|blablablabla |blabla     | mais blabla bla  ";
>>>>>> chomp $line;
>>>>>> my @p = split /|/, $line;
>>>>>> print $p[0] . "\n";
>>>>>>  print $p[1] . "\n";
>>>>>> print $p[2] . "\n";
>>>>>>  print $p[3] . "\n";
>>>>>>
>>>>>>  Minhas colunas são separadas por | e não tem tamanho fixo.
>>>>>>
>>>>>>  Não consegui separa-las corretamente.
>>>>>>
>>>>>>
>>>>>>
>>>>>> [...]'s
>>>>>>
>>>>>> Marcio
>>>>>>
>>>>>>   ========================================
>>>>>> ########### Campanha Ajude o Marcio! ###########
>>>>>> http://sosmarcio.blogspot.com.br/
>>>>>> http://www.vakinha.com.br/VaquinhaP.aspx?e=195793
>>>>>>  ========================================
>>>>>>
>>>>>>
>>>>>> Em 19 de junho de 2013 12:58, Andre Carneiro <
>>>>>> andregarciacarneiro at gmail.com> escreveu:
>>>>>>
>>>>>>> Valeu Lorn! Esse eu não conhecia!
>>>>>>>
>>>>>>>
>>>>>>>  Acho que fiquei mal-acostumado aqui na empresa. Os caras só usam
>>>>>>> coisa que tem suporte e normalmente isso implica em lincenças bem caras.
>>>>>>>
>>>>>>>  E no caso do splunk realmente, $30000,00 por 20GB/dia de
>>>>>>> indexação... caro !
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  Cheers!
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  2013/6/19 Nuba Princigalli <nuba at fastmail.fm>
>>>>>>>
>>>>>>>>  Complementando: nesse espaço, uma alternativa bacana também é o
>>>>>>>> logstash.
>>>>>>>>
>>>>>>>> On Wed, Jun 19, 2013, at 10:08 AM, Lindolfo Lorn Rodrigues wrote:
>>>>>>>>
>>>>>>>>   Fala André, blz?
>>>>>>>>  O Splunk é bom mesmo, só que muito é caro.
>>>>>>>>  Para centralizar logs eu gosto do http://graylog2.org/
>>>>>>>>  Open Source e escala muito bem, outro dia a locaweb revelou que
>>>>>>>> eles recebem/tratam 790.000 mensagens / 5min com o Graylog.
>>>>>>>>
>>>>>>>>  E como o graylog-server é compativel com o syslog você pode
>>>>>>>> apontar o syslog das maquinas para ele
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  2013/6/19 Andre Carneiro <andregarciacarneiro at gmail.com>
>>>>>>>>
>>>>>>>>
>>>>>>>> virxi... preciso revisar melhor meus e-mails. Mals...
>>>>>>>>
>>>>>>>>
>>>>>>>>  2013/6/19 Andre Carneiro <andregarciacarneiro at gmail.com>
>>>>>>>>
>>>>>>>>
>>>>>>>> Márcio, você já ouviu falar sobre o Splunk?
>>>>>>>>
>>>>>>>> http://www.splunk.com/product
>>>>>>>>
>>>>>>>>
>>>>>>>> O pessoal usa aqui usa bastante. Eu só dei uma olhadinha bem
>>>>>>>> superficial. Você pode criar gráficos de monitoração muito facilmente, pode
>>>>>>>> trabalhar com regex para fazer as análises dos logs, tudo simples, fácil e
>>>>>>>> rápido. Obviamente tem uma curvinha de aprendizado para vencer, mas nada
>>>>>>>> comparado à 'monstrinhos' como o Nagios, por exemplo(fãs de Nagios, me
>>>>>>>> desculpem! É a minha opinião!).
>>>>>>>>
>>>>>>>> O Splunk veio, aparentemente, preencher essa 'lacuna'.
>>>>>>>>
>>>>>>>>
>>>>>>>> Realmente bão !
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  2013/6/18 Nilton OS <jniltinho at gmail.com>
>>>>>>>>
>>>>>>>>
>>>>>>>>  my $test = '^(... .. ..:..:..) (\S+) \S+ ([a-zA-Z0-9]+):
>>>>>>>> FILTER_LOGX: from=\<(.*?)\> to=\<(.*?)\> subject=\<(.*?)\> size=([0-9]+)
>>>>>>>> hostip=([^ ]*) nrcpt=([0-9]+)';
>>>>>>>>
>>>>>>>>
>>>>>>>> Testa algo assim:
>>>>>>>>
>>>>>>>>  Se usar (\S+) ou \S+ vai começar a ter os resultados
>>>>>>>>
>>>>>>>> Dá uma olhada nesse script.
>>>>>>>>
>>>>>>>> http://pastebin.com/2Mnx9FAY
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  Em 18 de junho de 2013 19:33, Eduardo Verissimo <
>>>>>>>> everissimo at gmail.com> escreveu:
>>>>>>>>
>>>>>>>>  Que tal?
>>>>>>>>
>>>>>>>>  ($codigo) =~ /^.*?\|.*?\|.*?\|(.*?)\|/ if /TIM/;
>>>>>>>>
>>>>>>>>   Acho que ainda precisa de um ajuste...
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  Em 18 de junho de 2013 19:02, Nilton OS <jniltinho at gmail.com>escreveu:
>>>>>>>>
>>>>>>>>  Dá um split no (|)
>>>>>>>>
>>>>>>>> No meu script tem um regex para pegar isso ou qualquer coisa na
>>>>>>>> linha, mas acho que ninguém ligou para minha resposta.
>>>>>>>>
>>>>>>>>
>>>>>>>>  Em 18 de junho de 2013 18:34, Marcio - Google <marciorp at gmail.com>escreveu:
>>>>>>>>
>>>>>>>>
>>>>>>>>  Marcio, não.
>>>>>>>>
>>>>>>>>   Há duas informações na linha que tem que bater para ela ser
>>>>>>>> selecionada, no exemplo:
>>>>>>>>   *|***********************|***** |*D0 C003*| *********************
>>>>>>>> "TIM"*
>>>>>>>>
>>>>>>>>
>>>>>>>> [...]'s
>>>>>>>>
>>>>>>>> Marcio
>>>>>>>>
>>>>>>>>  ========================================
>>>>>>>>  ########### Campanha Ajude o Marcio! ###########
>>>>>>>>  http://sosmarcio.blogspot.com.br/
>>>>>>>>  http://www.vakinha.com.br/VaquinhaP.aspx?e=195793
>>>>>>>>  ========================================
>>>>>>>>
>>>>>>>>
>>>>>>>>  Em 18 de junho de 2013 16:59, Marcio Ferreira <
>>>>>>>> marciodesouzaferreira at gmail.com> escreveu:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> if ( $line =~ /"TIM"/i ){
>>>>>>>>      #faz alguma coisa
>>>>>>>>  }
>>>>>>>>
>>>>>>>> não funciona?
>>>>>>>>
>>>>>>>> http://perldoc.perl.org/perlre.html
>>>>>>>>  http://sao-paulo.pm.org/artigo/2006/RegexPraticasTecnicasAvancadas
>>>>>>>>  http://sao-paulo.pm.org/artigo/2006/ExpressoesRegulares
>>>>>>>>
>>>>>>>>
>>>>>>>> []s,
>>>>>>>>
>>>>>>>> Marcio Ferreira
>>>>>>>>
>>>>>>>> skype: marcio.ferreir4
>>>>>>>>  (21) 8365-7768
>>>>>>>>
>>>>>>>>
>>>>>>>>   2013/6/18 Marcio - Google <marciorp at gmail.com>
>>>>>>>>
>>>>>>>>  Marcio (xará),
>>>>>>>>
>>>>>>>>  Vou tentar com esse módulo. Já to ficando traumatizado com regex,
>>>>>>>> faz tempo que apanho, to começando a achar que seja algum tipo de trauma,
>>>>>>>> bloqueio, sei lá o que ... rsrsrs
>>>>>>>>
>>>>>>>> Giuliani,
>>>>>>>>
>>>>>>>>  Obrigado pela dica, vou procurar o livro.
>>>>>>>>
>>>>>>>> Tiago,
>>>>>>>>
>>>>>>>> Vou ler a respeito, obrigado.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> [...]'s
>>>>>>>>
>>>>>>>> Marcio
>>>>>>>>
>>>>>>>>  ========================================
>>>>>>>>  ########### Campanha Ajude o Marcio! ###########
>>>>>>>>  http://sosmarcio.blogspot.com.br/
>>>>>>>>  http://www.vakinha.com.br/VaquinhaP.aspx?e=195793
>>>>>>>>  ========================================
>>>>>>>>
>>>>>>>>
>>>>>>>>  Em 18 de junho de 2013 16:44, Marcio - Google <marciorp at gmail.com>escreveu:
>>>>>>>>
>>>>>>>>
>>>>>>>>  Eduardo,
>>>>>>>>
>>>>>>>>  O log é isso ai basicamente:
>>>>>>>>   T|20/05/2013 08:12:03.391|Modem |D1 C015| RX : OK
>>>>>>>>  T|20/05/2013 08:12:04.300|Modem |D0 C003| RX : +CREG:
>>>>>>>> 001,016d,5e13
>>>>>>>>  T|20/05/2013 08:12:04.300|Modem |D0 C003| TX : AT+COPS?
>>>>>>>>  T|20/05/2013 08:12:04.333|Modem |D0 C003| RX : +COPS:
>>>>>>>> 000,000,"TIM"
>>>>>>>>  T|20/05/2013 08:12:04.333|Modem |D0 C003| RX : OK
>>>>>>>>  T|20/05/2013 08:12:04.582|Modem |D0 C001| TX : AT+CSQ
>>>>>>>>  T|20/05/2013 08:12:04.582|Modem |D0 C002| TX : AT+CSQ
>>>>>>>>
>>>>>>>> Usando esse pedaço como exemplo, preciso localizar linhas assim:
>>>>>>>>  *|***********************|***** |D0 C003|
>>>>>>>> ********************"TIM"
>>>>>>>>
>>>>>>>> Entenda o * como qualquer coisa. Depois do quarto | os dados não
>>>>>>>> tem tamanho fixo, então esse "TIM" poderia estar mais pra frente como mais
>>>>>>>> pra trás.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> [...]'s
>>>>>>>>
>>>>>>>> Marcio
>>>>>>>>
>>>>>>>>  ========================================
>>>>>>>>  ########### Campanha Ajude o Marcio! ###########
>>>>>>>>  http://sosmarcio.blogspot.com.br/
>>>>>>>>  http://www.vakinha.com.br/VaquinhaP.aspx?e=195793
>>>>>>>>  ========================================
>>>>>>>>
>>>>>>>>
>>>>>>>>  Em 17 de junho de 2013 21:25, Eduardo Verissimo <
>>>>>>>> everissimo at gmail.com> escreveu:
>>>>>>>>
>>>>>>>>   Márcio, você pode dar um exemplo de qual a string de onde vai
>>>>>>>> tirar a informação e qual informação quer extrair?
>>>>>>>>
>>>>>>>>
>>>>>>>> Em 17 de junho de 2013 19:32, Marcio - Google <marciorp at gmail.com>escreveu:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  Valeu pelas dicas e códigos pessoal.
>>>>>>>>   Estou usando o File::Tail e parti do código que o Eduardo
>>>>>>>> compartilhou.
>>>>>>>>   Só estou apanhando das regex pra encontrar o que quero. Não sei
>>>>>>>> se sou burro, mas tenho uma grande dificuldade de assimilar/entender regex.
>>>>>>>>   Vou tentar mais um pouco, se não conseguir jogo a toalha ...
>>>>>>>> rsrsrs
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  =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
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> =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
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> =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
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> =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
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> ..............................................................................
>>>>>>>>  *Com Deus todas as coisas são possíveis* ::: LinuxPro<http://www.linuxpro.com.br>
>>>>>>>>
>>>>>>>> *"A qualidade nunca se obtém por acaso; ela é sempre o resultado
>>>>>>>> do esforço inteligente." (John Ruskin)*
>>>>>>>>  *"A mente que se abre a uma nova ideia jamais volta ao seu
>>>>>>>> tamanho original" (Albert Einstein)*
>>>>>>>>
>>>>>>>> =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
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> =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
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>>
>>>>>>>> ..............................................................................
>>>>>>>>  *Com Deus todas as coisas são possíveis* ::: LinuxPro<http://www.linuxpro.com.br>
>>>>>>>>
>>>>>>>> *"A qualidade nunca se obtém por acaso; ela é sempre o resultado
>>>>>>>> do esforço inteligente." (John Ruskin)*
>>>>>>>>  *"A mente que se abre a uma nova ideia jamais volta ao seu
>>>>>>>> tamanho original" (Albert Einstein)*
>>>>>>>>
>>>>>>>> =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
>>>>>>>>
>>>>>>>> =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
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  =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
>>>>>>>>
>>>>>>>>
>>>>>>>>   --
>>>>>>>>  Nuba R. Princigalli nuba at pauleira.com http://pauleira.com@nprincigalli
>>>>>>>>  Discipline is not an end in itself, just a means to an end. -
>>>>>>>> King Crimson
>>>>>>>>
>>>>>>>>
>>>>>>>> =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
>>>>>>>
>>>>>>> =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
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> =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
>>>>>>
>>>>>>
>>>>> =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
>>>>>
>>>>>
>>>>
>>>> =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
>>>>
>>>>
>>>
>>> =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
>>>
>>>
>>>
>>> =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
>>>
>>>
>>
>
> =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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20131023/5268ca9d/attachment-0001.html>


More information about the SaoPaulo-pm mailing list