<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt">
<DIV>Galera, eu vejo assim.</DIV>
<DIV> </DIV>
<DIV>Se trocar 6 por meia dúzia esta certo ? –> errado, é mostrar ao cliente 
que esta fazendo algo quando na verdade não esta.</DIV>
<DIV> </DIV>
<DIV>Mexer no que esta funcionando esta errado ? –> errado, se fosse assim 
não passaríamos horas otimizando, buscando novas formas de melhorar nosso 
serviço e mostrar ao cliente que realmente estamos trabalhando.</DIV>
<DIV> </DIV>
<DIV>Quando comecei a aprender Perl, algo que nunca esqueci até hoje na capa do 
livro do Larry Wall foi “Existe mais de uma maneira de se fazer”;</DIV>
<DIV> </DIV>
<DIV>Tiago, concordo com você, se esta tosco não esta gostando mude, otimize, 
refaça, eu sigo algumas regras em meus códigos, e duas delas são:</DIV>
<DIV>    </DIV>
<DIV>-> Tem que estar funcionando...    Mas tem que estar 
funcionando ao meu agrado e de forma correta.</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>-> Se posso melhorar.... porque não tentar...</DIV>
<DIV> </DIV>
<DIV>Para mim todas as opniões são importantes.... mas nem todas são 
validas....</DIV>
<DIV> </DIV>
<DIV 
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">
<DIV style="FONT: 10pt tahoma">
<DIV> </DIV>
<DIV style="BACKGROUND: #f5f5f5">
<DIV style="font-color: black"><B>From:</B> <A title=tiago.peczenyj@gmail.com 
href="mailto:tiago.peczenyj@gmail.com">Tiago Peczenyj</A> </DIV>
<DIV><B>Sent:</B> Tuesday, August 27, 2013 11:30 AM</DIV>
<DIV><B>To:</B> <A title=saopaulo-pm@mail.pm.org 
href="mailto:saopaulo-pm@mail.pm.org">saopaulo-pm@mail.pm.org</A> </DIV>
<DIV><B>Subject:</B> Re: [SP-pm] rodar coisas periodicas em 
perl</DIV></DIV></DIV>
<DIV> </DIV></DIV>
<DIV 
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">
<DIV dir=ltr>calma galera tb não é pra tanto 
<DIV> </DIV>
<DIV>eu tava achando essa porrada de if (dois) dentro do meu while algo 
tosco</DIV>
<DIV> </DIV>
<DIV> </DIV></DIV>
<DIV class=gmail_extra><BR><BR>
<DIV class=gmail_quote>2013/8/27 Andre Carneiro <SPAN dir=ltr><<A 
href="mailto:andregarciacarneiro@gmail.com" 
target=_blank>andregarciacarneiro@gmail.com</A>></SPAN><BR>
<BLOCKQUOTE 
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
class=gmail_quote>
  <DIV dir=ltr>
  <DIV>Se o Tiago estivesse com pressa, ele diria! E duvido que faria isso da 
  maneira como vocês fizeram. </DIV>
  <DIV> </DIV>
  <DIV>Achei chato mesmo e foda-se! Essa é a minha opinião!</DIV>
  <DIV> </DIV>
  <DIV> </DIV>
  <DIV>Proost!</DIV>
  <DIV> </DIV></DIV>
  <DIV class=HOEnZb>
  <DIV class=h5>
  <DIV class=gmail_extra><BR><BR>
  <DIV class=gmail_quote>2013/8/27 Blabos de Blebe <SPAN dir=ltr><<A 
  href="mailto:blabos@gmail.com" 
  target=_blank>blabos@gmail.com</A>></SPAN><BR>
  <BLOCKQUOTE 
  style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
  class=gmail_quote>
    <DIV dir=ltr>Na minha opinião, vc pode ter a sua opinião ;)</DIV>
    <DIV>
    <DIV>
    <DIV class=gmail_extra><BR><BR>
    <DIV class=gmail_quote>2013/8/26 Lucas Moraes <SPAN dir=ltr><<A 
    href="mailto:lucastiagodemoraes@gmail.com" 
    target=_blank>lucastiagodemoraes@gmail.com</A>></SPAN><BR>
    <BLOCKQUOTE 
    style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
    class=gmail_quote>
      <DIV dir=ltr>Mas ficar procurando soluções que não vai mudar muito o 
      projeto é trocar 6 por meia duzia. Conhecimento nunca é demais mesmo, isso 
      é fato! Mas tem quantas coisas novas para aprender em milhões de outros 
      assuntos, o que adianta você aprender várias formas de fazer se o final 
      vai ser quase o mesmo ou o mesmo. Tempo custa dinheiro, não é porque você 
      tem tempo para achar uma solução melhor que você é obrigado a fazer, 
      aconselho a pessoa descansar a mente ou procurar algo novo para fazer. 
      Respeito sua opinião, mas vou defendo a minha opinião. Eu postei minha 
      opinião porque o código do Tiago não esta feio, o módulo AE apesar de eu 
      nunca ter usado, olhei no metacpan esta com 49++ até o momento. Lembrando 
      que é só uma opinião minha, não estou colocando o revolver na cabeça de 
      ninguém. Falou.</DIV>
      <DIV class=gmail_extra><BR><BR>
      <DIV class=gmail_quote>Em 26 de agosto de 2013 16:41, Andre Carneiro <SPAN 
      dir=ltr><<A href="mailto:andregarciacarneiro@gmail.com" 
      target=_blank>andregarciacarneiro@gmail.com</A>></SPAN> escreveu: 
      <DIV>
      <DIV><BR>
      <BLOCKQUOTE 
      style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
      class=gmail_quote>
        <DIV dir=ltr>
        <DIV>Que feio!</DIV>
        <DIV> </DIV>Se houver prazo para pesquisa de novas soluções, eu não 
        vejo porque usar! Além do mais eu aprendi que conhecimento nunca é 
        demais. Então eu acho que essa nova visão agrega sim, e também qualquer 
        visão diferente sobre a solução do problema. Obrigado Lorn!  
        <DIV> </DIV>
        <DIV>Aprendi também, que desenvolvedor tem que resolver o problema da 
        melhor maneira possível! Que desempenho nunca é demais, e olhar para 
        coisas novas deveria ser um incentivo para fazer as coisas corretamente, 
        e não uma desculpa esfarrapada para resolver as coisas de qualquer 
        maneira, ou desprezar a opinião dos outros de maneira tão 
        grosseira.  
        <DIV> </DIV>
        <DIV>Proost!</DIV></DIV>
        <DIV> </DIV>
        <DIV> </DIV>
        <DIV> </DIV>
        <DIV> </DIV></DIV>
        <DIV class=gmail_extra>
        <DIV>
        <DIV><BR><BR>
        <DIV class=gmail_quote>2013/8/26 Lucas Moraes <SPAN dir=ltr><<A 
        href="mailto:lucastiagodemoraes@gmail.com" 
        target=_blank>lucastiagodemoraes@gmail.com</A>></SPAN><BR>
        <BLOCKQUOTE 
        style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
        class=gmail_quote>
          <DIV dir=ltr>Tiago se seu código esta funcionando deixa rodando. 
          Melhor código é aquele que atende as necessidades do cliente. Pare de 
          procurar problemas onde não existe :)</DIV>
          <DIV class=gmail_extra><BR><BR>
          <DIV class=gmail_quote>Em 26 de agosto de 2013 11:33, Tiago Peczenyj 
          <SPAN dir=ltr><<A href="mailto:tiago.peczenyj@gmail.com" 
          target=_blank>tiago.peczenyj@gmail.com</A>></SPAN> escreveu: 
          <DIV>
          <DIV><BR>
          <BLOCKQUOTE 
          style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
          class=gmail_quote>
            <DIV dir=ltr>não entendi</DIV>
            <DIV>
            <DIV>
            <DIV class=gmail_extra><BR><BR>
            <DIV class=gmail_quote>2013/8/26 Daniel de Oliveira Mantovani <SPAN 
            dir=ltr><<A href="mailto:daniel.oliveira.mantovani@gmail.com" 
            target=_blank>daniel.oliveira.mantovani@gmail.com</A>></SPAN><BR>
            <BLOCKQUOTE 
            style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
            class=gmail_quote>Para de perder tempo com coisas banais que não 
              vão te agregar nada.<BR><BR>2013/8/26 Tiago Peczenyj <<A 
              href="mailto:tiago.peczenyj@gmail.com" 
              target=_blank>tiago.peczenyj@gmail.com</A>>:<BR>
              <DIV>
              <DIV>> e?<BR>><BR>><BR>> 2013/8/26 Daniel de Oliveira 
              Mantovani <<A href="mailto:daniel.oliveira.mantovani@gmail.com" 
              target=_blank>daniel.oliveira.mantovani@gmail.com</A>><BR>>><BR>>> 
              Tiago, "Easy things should be easy, and hard things should 
              be<BR>>> possible" - Larry Wall<BR>>><BR>>> 
              2013/8/26 Tiago Peczenyj <<A 
              href="mailto:tiago.peczenyj@gmail.com" 
              target=_blank>tiago.peczenyj@gmail.com</A>>:<BR>>> > 
              Depois vcs me pagam uma cerveja e fica tudo sussa.<BR>>> 
              ><BR>>> ><BR>>> > 2013/8/26 Lindolfo Lorn 
              Rodrigues <<A href="mailto:lorn@lornlab.org" 
              target=_blank>lorn@lornlab.org</A>><BR>>> 
              >><BR>>> >> Antes que eu me esqueça: desculpe-me 
              se insultei.<BR>>> >><BR>>> >><BR>>> 
              >> 2013/8/26 Lindolfo Lorn Rodrigues <<A 
              href="mailto:lorn@lornlab.org" 
              target=_blank>lorn@lornlab.org</A>><BR>>> 
              >>><BR>>> >>> Não quis insultar, apenas 
              dar outra visão para o problema :)<BR>>> 
              >>><BR>>> >>><BR>>> 
              >>><BR>>> >>> 2013/8/26 Tiago Peczenyj 
              <<A href="mailto:tiago.peczenyj@gmail.com" 
              target=_blank>tiago.peczenyj@gmail.com</A>><BR>>> 
              >>>><BR>>> >>>> foi mal, agora eu 
              tenho algo como<BR>>> >>>><BR>>> 
              >>>> while(1){<BR>>> 
              >>>>    # calcula<BR>>> 
              >>>>    # if passou um minuto envia pro 
              zabbix<BR>>> >>>>    # if passou 
              um dia reinicia o contador<BR>>> 
              >>>>    sleep(1);<BR>>> 
              >>>> }<BR>>> >>>><BR>>> 
              >>>> qualquer sugestão é bem vinda. de repente o 
              zabbix pode continuar com<BR>>> >>>> 
              a<BR>>> >>>> monitoria e posso usar o StatsD 
              para essas coisas novas, ainda mais<BR>>> >>>> 
              se for<BR>>> >>>> menos burocratico.<BR>>> 
              >>>><BR>>> >>>><BR>>> 
              >>>> 2013/8/26 Stanislaw Pusep <<A 
              href="mailto:creaktive@gmail.com" 
              target=_blank>creaktive@gmail.com</A>><BR>>> 
              >>>>><BR>>> >>>>> Seja qual 
              for o seu objetivo, o código que você postou já está 
              feito<BR>>> >>>>> e<BR>>> 
              >>>>> funcionando bem, aparenemente.<BR>>> 
              >>>>> "Eu mudaria boa parte do que você fez" e "Eu 
              usaria o Statsd para<BR>>> >>>>> acumular o 
              valor e exportaria via graphite", seguido de "Eu não<BR>>> 
              >>>>> entendi bem<BR>>> >>>>> 
              o motivo de ficar rodando a cada segundo então vou chutar" é 
              um<BR>>> >>>>> insulto a<BR>>> 
              >>>>> sua inteligência, IMHO<BR>>> 
              >>>>><BR>>> >>>>><BR>>> 
              >>>>> 2013/8/26 Tiago Peczenyj <<A 
              href="mailto:tiago.peczenyj@gmail.com" 
              target=_blank>tiago.peczenyj@gmail.com</A>><BR>>> 
              >>>>>><BR>>> >>>>>> 
              Explain creaktive<BR>>> >>>>>><BR>>> 
              >>>>>><BR>>> >>>>>> 
              2013/8/26 Stanislaw Pusep <<A href="mailto:creaktive@gmail.com" 
              target=_blank>creaktive@gmail.com</A>><BR>>> 
              >>>>>>><BR>>> 
              >>>>>>> Overengineering detected!<BR>>> 
              >>>>>>><BR>>> 
              >>>>>>><BR>>> 
              >>>>>>> 2013/8/26 Lindolfo Lorn Rodrigues 
              <<A href="mailto:lorn@lornlab.org" 
              target=_blank>lorn@lornlab.org</A>><BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>> Eu mudaria boa parte do que você 
              fez.<BR>>> >>>>>>>><BR>>> 
              >>>>>>>> Não sei qual problema que você 
              está tentando resolver com isso,<BR>>> 
              >>>>>>>> por<BR>>> 
              >>>>>>>> isso tudo<BR>>> 
              >>>>>>>> isso aqui será uma mega hipotese, 
              se puder dizer qual o problema<BR>>> 
              >>>>>>>> está tentando<BR>>> 
              >>>>>>>> resolver, seria legal 
              :)<BR>>> >>>>>>>><BR>>> 
              >>>>>>>> Eu usaria o Statsd para acumular 
              o valor e exportaria via<BR>>> 
              >>>>>>>> graphite.<BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>> Eu não entendi bem o motivo de 
              ficar rodando a cada segundo então<BR>>> 
              >>>>>>>> vou chutar:<BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>> Você que capturar ações de 
              usuário/sistema em algum lugar?<BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>> Caso sim, você poderia colocar 
              esse codigo logo depois a ação do<BR>>> 
              >>>>>>>> usuário/sistema:<BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>> my $statsd = 
              Etsy::StatsD->new<BR>>> >>>>>>>> 
              my $bucket = "pacman.hit_number"<BR>>> 
              >>>>>>>> 
              $statsd->increment($bucket);<BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>> O stasd usa UDP, não vai alterar 
              em nada perceptivo na<BR>>> >>>>>>>> 
              perfomance,<BR>>> >>>>>>>> do seu 
              sistema.<BR>>> >>>>>>>><BR>>> 
              >>>>>>>> Mandando o contador acima para o 
              statsd ele irá acumular e mandar<BR>>> 
              >>>>>>>> para o graphite,<BR>>> 
              >>>>>>>> no graphite com o dado cru você 
              pode criar várias operações de<BR>>> 
              >>>>>>>> estatistica<BR>>> 
              >>>>>>>> ( mediana, media, percentile..etc 
              ) e gerar graficos.<BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>> <A 
              href="http://graphite.readthedocs.org/en/0.9.10/functions.html#module-graphite.render.functions" 
              target=_blank>http://graphite.readthedocs.org/en/0.9.10/functions.html#module-graphite.render.functions</A><BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>> O Statsd suporta vários backend o 
              mais conhecido/usado deles é o<BR>>> 
              >>>>>>>> Graphite:<BR>>> 
              >>>>>>>> <A 
              href="http://graphite.wikidot.com/screen-shots" 
              target=_blank>http://graphite.wikidot.com/screen-shots</A><BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>> A Etsy tem um post explicando 
              melhor a "metodologia" deles de<BR>>> 
              >>>>>>>> medir<BR>>> 
              >>>>>>>> tudo:<BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>> <A 
              href="http://codeascraft.com/2011/02/15/measure-anything-measure-everything/" 
              target=_blank>http://codeascraft.com/2011/02/15/measure-anything-measure-everything/</A><BR>>> 
              >>>>>>>> <A 
              href="https://github.com/etsy/statsd" 
              target=_blank>https://github.com/etsy/statsd</A><BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>> PS: O Statsd teve origem no 
              Flickr, e a primeira versão era em<BR>>> 
              >>>>>>>> Perl<BR>>> 
              >>>>>>>> recentemente eles<BR>>> 
              >>>>>>>> liberaram o código 
              fonte:<BR>>> >>>>>>>><BR>>> 
              >>>>>>>> <A 
              href="https://github.com/iamcal/Flickr-StatsD" 
              target=_blank>https://github.com/iamcal/Flickr-StatsD</A><BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>> 2013/8/26 Stanislaw Pusep <<A 
              href="mailto:creaktive@gmail.com" 
              target=_blank>creaktive@gmail.com</A>><BR>>> 
              >>>>>>>>><BR>>> 
              >>>>>>>>> Use AE::time() no lugar do 
              localtime<BR>>> 
              >>>>>>>>><BR>>> 
              >>>>>>>>> понедельник, 26 августа 2013 
              г. пользователь Tiago Peczenyj<BR>>> 
              >>>>>>>>> писал:<BR>>> 
              >>>>>>>>><BR>>> 
              >>>>>>>>>> Ola<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> Eu tenho o seguinte 
              caso<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> preciso rodar um certo 
              método a cada segundo, que por sua vez<BR>>> 
              >>>>>>>>>> acumula um valor em algum 
              atributo interno do objeto ( total +=<BR>>> 
              >>>>>>>>>> por exemplo<BR>>> 
              >>>>>>>>>> ).<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> a cada minuto quero 
              enviar o valor de total para algum lugar<BR>>> 
              >>>>>>>>>> (ex<BR>>> 
              >>>>>>>>>> Zabbix).<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> a meia noite eu quero 
              limpar o total para 0.<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> Eu cheguei a algo 
              assim:<BR>>> >>>>>>>>>> use 
              AnyEvent;<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> sub loop {<BR>>> 
              >>>>>>>>>> my $obj   = 
              Foo->new;<BR>>> >>>>>>>>>> 
              my $cv    = AE::cv;<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> my $seconds_in_a_day = 60 
              * 60 * 24;<BR>>> >>>>>>>>>> my 
              $seconds_to_midnight =  $seconds_in_a_day -<BR>>> 
              >>>>>>>>>> 
              seconds_from_midnight();<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> my $loop = 
              AE::timer  0, 1,  sub { $obj->run   
              };<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> my $send = 
              AE::timer  60, 60,  sub { $obj->send  
              };<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> my $clear= 
              AE::timer  $seconds_to_midnight, 
              $seconds_in_a_day,<BR>>> 
              >>>>>>>>>> sub { $obj->clear 
              };<BR>>> >>>>>>>>>> 
              $cv->recv;<BR>>> >>>>>>>>>> 
              }<BR>>> >>>>>>>>>><BR>>> 
              >>>>>>>>>> a sub 
              seconds_from_midnight usa localtime pra fazer uma 
              conta<BR>>> >>>>>>>>>> 
              marota.<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> A assinatura do AE::timer 
              eh<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> AE::timer $delay, 
              $interval, $callback;<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> No primeiro timer eu 
              tenho o meu main loop, chamando o metodo<BR>>> 
              >>>>>>>>>> run.<BR>>> 
              >>>>>>>>>> No segundo eu tenho o 
              metodo que envia os dados a cada 60<BR>>> 
              >>>>>>>>>> segundos<BR>>> 
              >>>>>>>>>> No terceiro eu calculo 
              quantos segundos faltam para a meia<BR>>> 
              >>>>>>>>>> noite e<BR>>> 
              >>>>>>>>>> mando repetir a cada 24 
              horas.<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> hoje eu tenho um loop com 
              um sleep 1 e varios ifs. quero que<BR>>> 
              >>>>>>>>>> fique<BR>>> 
              >>>>>>>>>> mais legivel e nao 
              utilizo anyEvent em nenhum outro lugar. Nao<BR>>> 
              >>>>>>>>>> precisa ser<BR>>> 
              >>>>>>>>>> EXATO, portanto um atraso 
              de alguns segundos pode acontecer.<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> Parece bom, mas eu tenho 
              algumas duvidas.<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> 1) esta claro o 
              suficiente?<BR>>> >>>>>>>>>> 
              2) o overhead do AnyEvent parece ser o mesmo do sleep 
              (1)<BR>>> >>>>>>>>>> 
              durante<BR>>> >>>>>>>>>> o 
              runtime (ignorando quanto tempo demora pra iniciar ou 
              não),<BR>>> >>>>>>>>>> 
              certo?<BR>>> >>>>>>>>>> 3) 
              para rodar algo "a meia noite" me parece um tanto 
              confuso<BR>>> >>>>>>>>>> 
              ainda. não encontrei nenhum helper q me ajude (o 
              AnyEvent::Cron<BR>>> 
              >>>>>>>>>> da pau pra<BR>>> 
              >>>>>>>>>> mim). sera q nao eh 
              melhor "re-setar" o time watcher para a<BR>>> 
              >>>>>>>>>> proxima meia<BR>>> 
              >>>>>>>>>> noite?<BR>>> 
              >>>>>>>>>> 4) alias tem algo melhor 
              do que ficar brincando com localtime()<BR>>> 
              >>>>>>>>>> pra pegar quantos 
              segundos faltam pra proxima meia noite? algo<BR>>> 
              >>>>>>>>>> usando<BR>>> 
              >>>>>>>>>> DateTime<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> por fim<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> 5) tem algum problema ao 
              usar AE::timer q eu não esteja vendo?<BR>>> 
              >>>>>>>>>> Fora os problemas 
              interentes como se eu usar IO Bloqueante eu<BR>>> 
              >>>>>>>>>> não vou ter 
              os<BR>>> >>>>>>>>>> timers 
              "exatos".<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> Obrigado<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> Tiago<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> --<BR>>> 
              >>>>>>>>>> Tiago B. 
              Peczenyj<BR>>> >>>>>>>>>> 
              Linux User #405772<BR>>> 
              >>>>>>>>>><BR>>> 
              >>>>>>>>>> <A 
              href="http://about.me/peczenyj" 
              target=_blank>http://about.me/peczenyj</A><BR>>> 
              >>>>>>>>><BR>>> 
              >>>>>>>>><BR>>> 
              >>>>>>>>> =begin disclaimer<BR>>> 
              >>>>>>>>>    Sao Paulo 
              Perl Mongers: <A href="http://sao-paulo.pm.org/" 
              target=_blank>http://sao-paulo.pm.org/</A><BR>>> 
              >>>>>>>>>  SaoPaulo-pm mailing 
              list: <A href="mailto:SaoPaulo-pm@pm.org" 
              target=_blank>SaoPaulo-pm@pm.org</A><BR>>> 
              >>>>>>>>>  L<<A 
              href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
              target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>> 
              >>>>>>>>> =end disclaimer<BR>>> 
              >>>>>>>>><BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>>> =begin disclaimer<BR>>> 
              >>>>>>>>    Sao Paulo Perl 
              Mongers: <A href="http://sao-paulo.pm.org/" 
              target=_blank>http://sao-paulo.pm.org/</A><BR>>> 
              >>>>>>>>  SaoPaulo-pm mailing list: 
              <A href="mailto:SaoPaulo-pm@pm.org" 
              target=_blank>SaoPaulo-pm@pm.org</A><BR>>> 
              >>>>>>>>  L<<A 
              href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
              target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>> 
              >>>>>>>> =end disclaimer<BR>>> 
              >>>>>>>><BR>>> 
              >>>>>>><BR>>> 
              >>>>>>><BR>>> 
              >>>>>>> =begin disclaimer<BR>>> 
              >>>>>>>    Sao Paulo Perl 
              Mongers: <A href="http://sao-paulo.pm.org/" 
              target=_blank>http://sao-paulo.pm.org/</A><BR>>> 
              >>>>>>>  SaoPaulo-pm mailing list: <A 
              href="mailto:SaoPaulo-pm@pm.org" 
              target=_blank>SaoPaulo-pm@pm.org</A><BR>>> 
              >>>>>>>  L<<A 
              href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
              target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>> 
              >>>>>>> =end disclaimer<BR>>> 
              >>>>>>><BR>>> 
              >>>>>><BR>>> 
              >>>>>><BR>>> 
              >>>>>><BR>>> >>>>>> 
              --<BR>>> >>>>>> Tiago B. 
              Peczenyj<BR>>> >>>>>> Linux User 
              #405772<BR>>> >>>>>><BR>>> 
              >>>>>> <A href="http://about.me/peczenyj" 
              target=_blank>http://about.me/peczenyj</A><BR>>> 
              >>>>>><BR>>> >>>>>> 
              =begin disclaimer<BR>>> 
              >>>>>>    Sao Paulo Perl Mongers: 
              <A href="http://sao-paulo.pm.org/" 
              target=_blank>http://sao-paulo.pm.org/</A><BR>>> 
              >>>>>>  SaoPaulo-pm mailing list: <A 
              href="mailto:SaoPaulo-pm@pm.org" 
              target=_blank>SaoPaulo-pm@pm.org</A><BR>>> 
              >>>>>>  L<<A 
              href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
              target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>> 
              >>>>>> =end disclaimer<BR>>> 
              >>>>>><BR>>> 
              >>>>><BR>>> >>>>><BR>>> 
              >>>>> =begin disclaimer<BR>>> 
              >>>>>    Sao Paulo Perl Mongers: <A 
              href="http://sao-paulo.pm.org/" 
              target=_blank>http://sao-paulo.pm.org/</A><BR>>> 
              >>>>>  SaoPaulo-pm mailing list: <A 
              href="mailto:SaoPaulo-pm@pm.org" 
              target=_blank>SaoPaulo-pm@pm.org</A><BR>>> 
              >>>>>  L<<A 
              href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
              target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>> 
              >>>>> =end disclaimer<BR>>> 
              >>>>><BR>>> >>>><BR>>> 
              >>>><BR>>> >>>><BR>>> 
              >>>> --<BR>>> >>>> Tiago B. 
              Peczenyj<BR>>> >>>> Linux User 
              #405772<BR>>> >>>><BR>>> >>>> 
              <A href="http://about.me/peczenyj" 
              target=_blank>http://about.me/peczenyj</A><BR>>> 
              >>>><BR>>> >>>> =begin 
              disclaimer<BR>>> >>>>    Sao 
              Paulo Perl Mongers: <A href="http://sao-paulo.pm.org/" 
              target=_blank>http://sao-paulo.pm.org/</A><BR>>> 
              >>>>  SaoPaulo-pm mailing list: <A 
              href="mailto:SaoPaulo-pm@pm.org" 
              target=_blank>SaoPaulo-pm@pm.org</A><BR>>> 
              >>>>  L<<A 
              href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
              target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>> 
              >>>> =end disclaimer<BR>>> 
              >>>><BR>>> >>><BR>>> 
              >><BR>>> >><BR>>> >> =begin 
              disclaimer<BR>>> >>    Sao Paulo Perl 
              Mongers: <A href="http://sao-paulo.pm.org/" 
              target=_blank>http://sao-paulo.pm.org/</A><BR>>> 
              >>  SaoPaulo-pm mailing list: <A 
              href="mailto:SaoPaulo-pm@pm.org" 
              target=_blank>SaoPaulo-pm@pm.org</A><BR>>> >>  
              L<<A href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
              target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>> 
              >> =end disclaimer<BR>>> >><BR>>> 
              ><BR>>> ><BR>>> ><BR>>> > 
              --<BR>>> > Tiago B. Peczenyj<BR>>> > Linux User 
              #405772<BR>>> ><BR>>> > <A 
              href="http://about.me/peczenyj" 
              target=_blank>http://about.me/peczenyj</A><BR>>> 
              ><BR>>> > =begin disclaimer<BR>>> 
              >    Sao Paulo Perl Mongers: <A 
              href="http://sao-paulo.pm.org/" 
              target=_blank>http://sao-paulo.pm.org/</A><BR>>> >  
              SaoPaulo-pm mailing list: <A href="mailto:SaoPaulo-pm@pm.org" 
              target=_blank>SaoPaulo-pm@pm.org</A><BR>>> >  
              L<<A href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
              target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>> 
              > =end disclaimer<BR>>> 
              ><BR>>><BR>>><BR>>><BR>>> 
              --<BR>>><BR>>> -dom<BR>>><BR>>> 
              --<BR>>><BR>>> Daniel de Oliveira 
              Mantovani<BR>>> Business Analytic Specialist<BR>>> 
              Perl Evangelist /Astrophysics hobbyist.<BR>>> <A 
              href="tel:%2B55%2011%209%208538-9897" target=_blank 
              value="+5511985389897">+55 11 9 8538-9897</A><BR>>> 
              XOXO<BR>>> =begin disclaimer<BR>>>    
              Sao Paulo Perl Mongers: <A href="http://sao-paulo.pm.org/" 
              target=_blank>http://sao-paulo.pm.org/</A><BR>>>  
              SaoPaulo-pm mailing list: <A href="mailto:SaoPaulo-pm@pm.org" 
              target=_blank>SaoPaulo-pm@pm.org</A><BR>>>  L<<A 
              href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
              target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>> 
              =end disclaimer<BR>><BR>><BR>><BR>><BR>> --<BR>> 
              Tiago B. Peczenyj<BR>> Linux User #405772<BR>><BR>> <A 
              href="http://about.me/peczenyj" 
              target=_blank>http://about.me/peczenyj</A><BR>><BR>> =begin 
              disclaimer<BR>>    Sao Paulo Perl Mongers: <A 
              href="http://sao-paulo.pm.org/" 
              target=_blank>http://sao-paulo.pm.org/</A><BR>>  
              SaoPaulo-pm mailing list: <A href="mailto:SaoPaulo-pm@pm.org" 
              target=_blank>SaoPaulo-pm@pm.org</A><BR>>  L<<A 
              href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
              target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>> 
              =end 
              disclaimer<BR>><BR><BR><BR><BR>--<BR><BR>-dom<BR><BR>--<BR><BR>Daniel 
              de Oliveira Mantovani<BR>Business Analytic Specialist<BR>Perl 
              Evangelist /Astrophysics hobbyist.<BR><A 
              href="tel:%2B55%2011%209%208538-9897" target=_blank 
              value="+5511985389897">+55 11 9 8538-9897</A><BR>XOXO<BR>=begin 
              disclaimer<BR>   Sao Paulo Perl Mongers: <A 
              href="http://sao-paulo.pm.org/" 
              target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing 
              list: <A href="mailto:SaoPaulo-pm@pm.org" 
              target=_blank>SaoPaulo-pm@pm.org</A><BR>L<<A 
              href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
              target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end 
              disclaimer<BR></DIV></DIV></BLOCKQUOTE></DIV><BR><BR clear=all>
            <DIV> </DIV>-- <BR>Tiago B. Peczenyj<BR>Linux User 
            #405772<BR><BR><A href="http://about.me/peczenyj" 
            target=_blank>http://about.me/peczenyj</A> 
            </DIV></DIV></DIV><BR>=begin disclaimer<BR>   Sao Paulo 
            Perl Mongers: <A href="http://sao-paulo.pm.org/" 
            target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing 
            list: <A href="mailto:SaoPaulo-pm@pm.org" 
            target=_blank>SaoPaulo-pm@pm.org</A><BR>L<<A 
            href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
            target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end 
            disclaimer<BR><BR></BLOCKQUOTE></DIV></DIV></DIV>
          <DIV> </DIV></DIV><BR>=begin disclaimer<BR>   Sao Paulo 
          Perl Mongers: <A href="http://sao-paulo.pm.org/" 
          target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing 
          list: <A href="mailto:SaoPaulo-pm@pm.org" 
          target=_blank>SaoPaulo-pm@pm.org</A><BR>L<<A 
          href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
          target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end 
          disclaimer<BR><BR></BLOCKQUOTE></DIV><BR><BR clear=all>
        <DIV> </DIV>-- <BR></DIV></DIV>André Garcia Carneiro<BR>Software 
        Engineer<BR><A href="tel:%2811%29982907780" target=_blank 
        value="+5511982907780">(11)982907780</A> </DIV><BR>=begin 
        disclaimer<BR>   Sao Paulo Perl Mongers: <A 
        href="http://sao-paulo.pm.org/" 
        target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing list: 
        <A href="mailto:SaoPaulo-pm@pm.org" 
        target=_blank>SaoPaulo-pm@pm.org</A><BR>L<<A 
        href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
        target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end 
        disclaimer<BR><BR></BLOCKQUOTE></DIV></DIV></DIV>
      <DIV> </DIV></DIV><BR>=begin disclaimer<BR>   Sao Paulo 
      Perl Mongers: <A href="http://sao-paulo.pm.org/" 
      target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing list: <A 
      href="mailto:SaoPaulo-pm@pm.org" 
      target=_blank>SaoPaulo-pm@pm.org</A><BR>L<<A 
      href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
      target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end 
      disclaimer<BR><BR></BLOCKQUOTE></DIV>
    <DIV> </DIV></DIV></DIV></DIV><BR>=begin disclaimer<BR>   Sao 
    Paulo Perl Mongers: <A href="http://sao-paulo.pm.org/" 
    target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing list: <A 
    href="mailto:SaoPaulo-pm@pm.org" 
    target=_blank>SaoPaulo-pm@pm.org</A><BR>L<<A 
    href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
    target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end 
    disclaimer<BR><BR></BLOCKQUOTE></DIV><BR><BR clear=all>
  <DIV> </DIV>-- <BR>André Garcia Carneiro<BR>Software Engineer<BR><A 
  href="tel:%2811%29982907780" target=_blank 
  value="+5511982907780">(11)982907780</A> </DIV></DIV></DIV><BR>=begin 
  disclaimer<BR>   Sao Paulo Perl Mongers: <A 
  href="http://sao-paulo.pm.org/" 
  target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing list: <A 
  href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</A><BR>L<<A 
  href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
  target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end 
  disclaimer<BR><BR></BLOCKQUOTE></DIV><BR><BR clear=all>
<DIV> </DIV>-- <BR>Tiago B. Peczenyj<BR>Linux User #405772<BR><BR><A 
href="http://about.me/peczenyj" target=_blank>http://about.me/peczenyj</A> 
</DIV>
<P>
<HR>
=begin disclaimer<BR>   Sao Paulo Perl Mongers: 
http://sao-paulo.pm.org/<BR>SaoPaulo-pm mailing list: 
SaoPaulo-pm@pm.org<BR>L<http://mail.pm.org/mailman/listinfo/saopaulo-pm><BR>=end 
disclaimer<BR></DIV></DIV></DIV></BODY></HTML>