[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