<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Em 19-09-2010 01:56, Solli Honorio escreveu:
<blockquote
 cite="mid:AANLkTinab5V_s4mhBkx5PczzWMdNdU-AF30Gew3xDFMq@mail.gmail.com"
 type="cite"><br>
  <br>
  <div class="gmail_quote">Em 18 de setembro de 2010 23:22, "Fl&aacute;vio R.
Lopes" <span dir="ltr">&lt;<a moz-do-not-send="true"
 href="mailto:flavio.lopes@links.inf.br">flavio.lopes@links.inf.br</a>&gt;</span>
escreveu:<br>
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Em
18-09-2010 10:05, Thiago Glauco Sanchez escreveu:
    <div class="im"><br>
    <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Em 17/09/2010 13:08, Daniel de Oliveira Mantovani escreveu:<br>
      <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
De imediato voc&ecirc;, est&aacute; fazendo algumas coisas que n&atilde;o tem muito<br>
sentido e outras que n&atilde;o deveriam estar l&aacute;.<br>
        <br>
      </blockquote>
Sim sim.... use 5.12.0 carrega automaticamente use strict e use
warnings, o use 5.10.0 ou inferiores n&atilde;o!<br>
A fun&ccedil;&atilde;o map{ } &eacute; um loop que retorna valores para serem guardados em
outro array ou hash. Enfim, neste caso e em muitos casos n&atilde;o gera dano
nenhum, apenas gera opcodes desnecess&aacute;rios para o interpretador do
Perl. N&atilde;o &eacute; "uma boa pr&aacute;tica", mas n&atilde;o fere ningu&eacute;m. As fun&ccedil;&otilde;es map,
sort e grep trabalham como loops especializados. Voc&ecirc; pode usa-los para
outras coisas, eh bem comum ver por ai c&oacute;digos com map que meramente
descartam o valor. E como o Mantovani ressaltou isso s&oacute; gera um
warning. Voc&ecirc; d&aacute; mais trabalho ao Perl por que ele vai gerar um valor
de sa&iacute;da que vai ser descartado. O seu racioc&iacute;nio de programa&ccedil;&atilde;o est&aacute;
evoluindo bem, &eacute; apenas quest&atilde;o de refinar um pouco o seu conhecimento
de Perl e saber quando &eacute; "melhor usar uma p&aacute; e quando &eacute; melhor usar uma
enxada". Voc&ecirc; pode cavar um buraco com a enxada, mas a p&aacute; &eacute; muito
melhor...<br>
      <br>
&nbsp;%hash = map { get_a_key_for($_) =&gt; $_ } @array;<br>
      <br>
&eacute; o mesmo que:<br>
      <br>
&nbsp;%hash = ();<br>
&nbsp;foreach (@array) {<br>
&nbsp; &nbsp; $hash{get_a_key_for($_)} = $_;<br>
&nbsp;}<br>
      <br>
ali&aacute;s at&eacute; os opcodes gerados pelo compilador ser&atilde;o praticamente os
mesmos. Assim como for e foreach geram os mesmos opcodes.<br>
    </blockquote>
    </div>
Hummm....Ok!<br>
Obrigado Thiago.</blockquote>
  <div><br>
Mas afinal, vc entendeu a diferen&ccedil;a do map e for ?<br>
  </div>
  </div>
</blockquote>
Acredito que sim. Por favor me corrija se estiver errado: <br>
<br>
Para manipular/retornar valores entre listas e hashes posso utilizar a
fun&ccedil;&atilde;o "map" (ou mesmo um while/for/foreach).<br>
J&aacute; quando for em contexto "void", ou seja, quando n&atilde;o for retornar nada
a&iacute; sim devo utlizar um loop, por exemplo, com "while".<br>
Estou correto?<br>
<br>
<blockquote
 cite="mid:AANLkTinab5V_s4mhBkx5PczzWMdNdU-AF30Gew3xDFMq@mail.gmail.com"
 type="cite">
  <div class="gmail_quote">
  <div><br>
&nbsp;</div>
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
    <div>
    <div class="h5"><br>
    <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
      <br>
      <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Quando voc&ecirc; faz, 5.12.0 automaticamente voc&ecirc; tem "use warnings" e "use<br>
strict" no seu c&oacute;digo. Outra coisa, a unica coisa que voc&ecirc; vai<br>
conseguir usando um map em void context &eacute; um warning avisando que o<br>
map est&aacute; em void context, map n&atilde;o &eacute; para isso.<br>
Se voc&ecirc; der uma lida no perldoc -f map, vai pegar o que &eacute; o "map".<br>
        <br>
        <br>
        <br>
2010/9/17 "Fl&aacute;vio R. Lopes"&lt;<a moz-do-not-send="true"
 href="mailto:flavio.lopes@links.inf.br" target="_blank">flavio.lopes@links.inf.br</a>&gt;:<br>
        <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Ops!...s&oacute; corrigindo o link:<br>
          <br>
          <a moz-do-not-send="true" href="http://gist.github.com/583692"
 target="_blank">http://gist.github.com/583692</a><br>
          <br>
          <br>
Em 17-09-2010 01:40, "Fl&aacute;vio R. Lopes" escreveu:<br>
          <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Ol&aacute; pessoal.<br>
            <br>
Fiz um programinha que sincroniza diret&oacute;rios entre servidores. Como s&atilde;o<br>
v&aacute;rios servidores, gostaria de gerar tipo de um "log" que ir&aacute; me mostrar<br>
quais as conex&otilde;es (transfer&ecirc;ncias) que deram certo e quais falharam.<br>
Por exemplo, gostaria de gerar um arquivo de log que me mostrasse mais
ou<br>
menos o seguinte:<br>
            <br>
Servidor server1 =&gt; &nbsp;Transfer&ecirc;ncia Ok<br>
Servidor server2 =&gt; &nbsp;Transfer&ecirc;ncia Ok<br>
Servidor server3 =&gt; &nbsp;Falhou<br>
(and so on...)<br>
            <br>
O script &eacute; este: git://<a moz-do-not-send="true"
 href="http://gist.github.com/583692.git" target="_blank">gist.github.com/583692.git</a><br>
            <br>
Tentei jogar esta parte (abaixo) dentro de um "if", mas n&atilde;o funcionou:<br>
map {<br>
&nbsp; &nbsp;$obj-&gt;exec( { src =&gt; &nbsp;$_ . ':/path/de/origem', dest =&gt;
&nbsp;$servidor{$_} } )<br>
&nbsp; &nbsp; &nbsp;or warn "A transferencia falhou!\n"<br>
} keys %servidor;<br>
            <br>
            <br>
Uma outra d&uacute;vida minha &eacute; a seguinte: Como eu usei a fun&ccedil;&atilde;o "map" para<br>
tratar os elementos do meu Hash, quando eu disparo o script, ele<br>
automaticamente tenta fazer a conex&atilde;o com TODOS os servidores listados<br>
dentro do Hash de uma &uacute;nica vez, ou seja, ele vai abrir tantas conex&otilde;es<br>
quantas estiverem listadas no Hash. Constatei isto usando o "netstat -n"<br>
            <br>
Daria para fazer um controle, tipo, s&oacute; abrir uma conex&atilde;o, quando uma
outra<br>
for finalizada? Imaginei tamb&eacute;m testar a conex&atilde;o, ou seja, pode ser que
um<br>
determinado server n&atilde;o esteja "no ar"...<br>
            <br>
Voc&ecirc;s podem me dar uma dica?<br>
            <br>
Abra&ccedil;o,<br>
Fl&aacute;vio<br>
            <br>
_______________________________________________<br>
SaoPaulo-pm mailing list<br>
            <a moz-do-not-send="true" href="mailto:SaoPaulo-pm@pm.org"
 target="_blank">SaoPaulo-pm@pm.org</a><br>
            <a moz-do-not-send="true"
 href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
            <br>
          </blockquote>
_______________________________________________<br>
SaoPaulo-pm mailing list<br>
          <a moz-do-not-send="true" href="mailto:SaoPaulo-pm@pm.org"
 target="_blank">SaoPaulo-pm@pm.org</a><br>
          <a moz-do-not-send="true"
 href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
          <br>
        </blockquote>
        <br>
        <br>
      </blockquote>
      <br>
      <br>
    </blockquote>
    <br>
_______________________________________________<br>
SaoPaulo-pm mailing list<br>
    <a moz-do-not-send="true" href="mailto:SaoPaulo-pm@pm.org"
 target="_blank">SaoPaulo-pm@pm.org</a><br>
    <a moz-do-not-send="true"
 href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
    <br>
    </div>
    </div>
  </blockquote>
  </div>
  <br>
  <br clear="all">
  <br>
-- <br>
"o animal satisfeito dorme". - Guimar&atilde;es Rosa<br>
  <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
SaoPaulo-pm mailing list
<a class="moz-txt-link-abbreviated" href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a>
<a class="moz-txt-link-freetext" href="http://mail.pm.org/mailman/listinfo/saopaulo-pm">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a></pre>
</blockquote>
<br>
</body>
</html>