[SP-pm] Como testar conexões remotas?

"Flávio R. Lopes" flavio.lopes at links.inf.br
Sun Sep 19 20:12:15 PDT 2010


Em 19-09-2010 01:56, Solli Honorio escreveu:
>
>
> Em 18 de setembro de 2010 23:22, "Flávio R. Lopes" 
> <flavio.lopes em links.inf.br <mailto:flavio.lopes em links.inf.br>> escreveu:
>
>     Em 18-09-2010 10:05, Thiago Glauco Sanchez escreveu:
>
>         Em 17/09/2010 13:08, Daniel de Oliveira Mantovani escreveu:
>
>             De imediato você, está fazendo algumas coisas que não tem
>             muito
>             sentido e outras que não deveriam estar lá.
>
>         Sim sim.... use 5.12.0 carrega automaticamente use strict e
>         use warnings, o use 5.10.0 ou inferiores não!
>         A função map{ } é um loop que retorna valores para serem
>         guardados em outro array ou hash. Enfim, neste caso e em
>         muitos casos não gera dano nenhum, apenas gera opcodes
>         desnecessários para o interpretador do Perl. Não é "uma boa
>         prática", mas não fere ninguém. As funções map, sort e grep
>         trabalham como loops especializados. Você pode usa-los para
>         outras coisas, eh bem comum ver por ai códigos com map que
>         meramente descartam o valor. E como o Mantovani ressaltou isso
>         só gera um warning. Você dá mais trabalho ao Perl por que ele
>         vai gerar um valor de saída que vai ser descartado. O seu
>         raciocínio de programação está evoluindo bem, é apenas questão
>         de refinar um pouco o seu conhecimento de Perl e saber quando
>         é "melhor usar uma pá e quando é melhor usar uma enxada". Você
>         pode cavar um buraco com a enxada, mas a pá é muito melhor...
>
>          %hash = map { get_a_key_for($_) => $_ } @array;
>
>         é o mesmo que:
>
>          %hash = ();
>          foreach (@array) {
>             $hash{get_a_key_for($_)} = $_;
>          }
>
>         aliás até os opcodes gerados pelo compilador serão
>         praticamente os mesmos. Assim como for e foreach geram os
>         mesmos opcodes.
>
>     Hummm....Ok!
>     Obrigado Thiago.
>
>
> Mas afinal, vc entendeu a diferença do map e for ?
Acredito que sim. Por favor me corrija se estiver errado:

Para manipular/retornar valores entre listas e hashes posso utilizar a 
função "map" (ou mesmo um while/for/foreach).
Já quando for em contexto "void", ou seja, quando não for retornar nada 
aí sim devo utlizar um loop, por exemplo, com "while".
Estou correto?

>
>
>
>             Quando você faz, 5.12.0 automaticamente você tem "use
>             warnings" e "use
>             strict" no seu código. Outra coisa, a unica coisa que você vai
>             conseguir usando um map em void context é um warning
>             avisando que o
>             map está em void context, map não é para isso.
>             Se você der uma lida no perldoc -f map, vai pegar o que é
>             o "map".
>
>
>
>             2010/9/17 "Flávio R. Lopes"<flavio.lopes em links.inf.br
>             <mailto:flavio.lopes em links.inf.br>>:
>
>                 Ops!...só corrigindo o link:
>
>                 http://gist.github.com/583692
>
>
>                 Em 17-09-2010 01:40, "Flávio R. Lopes" escreveu:
>
>                     Olá pessoal.
>
>                     Fiz um programinha que sincroniza diretórios entre
>                     servidores. Como são
>                     vários servidores, gostaria de gerar tipo de um
>                     "log" que irá me mostrar
>                     quais as conexões (transferências) que deram certo
>                     e quais falharam.
>                     Por exemplo, gostaria de gerar um arquivo de log
>                     que me mostrasse mais ou
>                     menos o seguinte:
>
>                     Servidor server1 =>  Transferência Ok
>                     Servidor server2 =>  Transferência Ok
>                     Servidor server3 =>  Falhou
>                     (and so on...)
>
>                     O script é este: git://gist.github.com/583692.git
>                     <http://gist.github.com/583692.git>
>
>                     Tentei jogar esta parte (abaixo) dentro de um
>                     "if", mas não funcionou:
>                     map {
>                        $obj->exec( { src =>  $_ . ':/path/de/origem',
>                     dest =>  $servidor{$_} } )
>                          or warn "A transferencia falhou!\n"
>                     } keys %servidor;
>
>
>                     Uma outra dúvida minha é a seguinte: Como eu usei
>                     a função "map" para
>                     tratar os elementos do meu Hash, quando eu disparo
>                     o script, ele
>                     automaticamente tenta fazer a conexão com TODOS os
>                     servidores listados
>                     dentro do Hash de uma única vez, ou seja, ele vai
>                     abrir tantas conexões
>                     quantas estiverem listadas no Hash. Constatei isto
>                     usando o "netstat -n"
>
>                     Daria para fazer um controle, tipo, só abrir uma
>                     conexão, quando uma outra
>                     for finalizada? Imaginei também testar a conexão,
>                     ou seja, pode ser que um
>                     determinado server não esteja "no ar"...
>
>                     Vocês podem me dar uma dica?
>
>                     Abraço,
>                     Flávio
>
>                     _______________________________________________
>                     SaoPaulo-pm mailing list
>                     SaoPaulo-pm em pm.org <mailto:SaoPaulo-pm em pm.org>
>                     http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
>                 _______________________________________________
>                 SaoPaulo-pm mailing list
>                 SaoPaulo-pm em pm.org <mailto:SaoPaulo-pm em pm.org>
>                 http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
>
>
>
>
>
>     _______________________________________________
>     SaoPaulo-pm mailing list
>     SaoPaulo-pm em pm.org <mailto:SaoPaulo-pm em pm.org>
>     http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
>
>
>
> -- 
> "o animal satisfeito dorme". - Guimarães Rosa
>
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm

-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20100920/c3213559/attachment.html>


More information about the SaoPaulo-pm mailing list