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

Otávio Fernandes otaviof at gmail.com
Mon Sep 20 01:01:31 PDT 2010


2010/9/20 Gabriel Vieira <gabriel.vieira em gmail.com>:
> 2010/9/20 "Flávio R. Lopes" <flavio.lopes em links.inf.br>:
>> 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?
>
> Não.
>
> Quando precisar tratar uma lista para gerar uma nova lista, recomendo
> que utilize map, quando não precisar gerar uma nova lista, utilize oq
> desejar utilizar.
>
> TIMTOWTDI
>
> ------------8<------------
> # map, grep retornam uma lista
>
> @nova_lista = map { $_ + 5 } @lista_antiga;
>
>
> # for, foreach, while, until não fazem retorno
>
> push @nova_lista, $_ + 5 foreach @lista_antiga;
> ------------8<------------
>
>
> Compreende?
>
> --
> Gabriel Vieira
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm

Senhores,

A explicação foi boa, mas faltou citar um ponto muito importante no map: a
parte funcional. Partindo da documentação:

$ perldoc -f map
(...)
Evaluates the BLOCK or EXPR for each element of LIST (locally
setting $_ to each element) and returns the list value composed
of the results of each such evaluation.
(...)

Ou seja, para cada elemento informado ao map, ele valida o bloco "{}" (mesmo
conceito utilizado em closures), e ao final, o resultado do map é outra lista
porque ele aplicou esta closure em cada elemento.

No entanto, o foreach segue uma abordagem imperativa, visto que você incia e
tem controle total sobre loop.

Na prática os dois tem o mesmo resultado, porem, como o Eden citou antes, o
"map" pode ser mais eficiente para algumas situações. Particularmente, eu
gosto de usar os dois, e dou mais prioridade para quem faz mais sentido
naquele momento, uma abortagem funcional ou imperativa.

um abraço,

-- 
Otávio Fernandes
otaviof at ( gmail.com, cpan.org )
http://github.com/otaviof


More information about the SaoPaulo-pm mailing list