Hummm.....Ok!
Pessoal...acho que caiu a ficha aqui.
Obrigado mais uma vez pela ajuda!
Abraço,
Flávio
On 29-05-2011 22:25, Alexei Znamensky wrote:
Flávio,
2011/5/29 "Flávio R. Lopes" <[email protected]
<mailto:[email protected]>>
[...]
[1] https://github.com/russoz/perltests/blob/master/test-grep.pl
É aqui que não entendo porque o Perl, digamos, "não segue com a
lógica do bloco", ou seja, ele não faz o exemplo (abaixo) do MAP.
Aqui ele somente coloca no meu array @result somente o "itens" do
array de entrada que correspondem A PRIMEIRA CONDIÇÃO do bloco, ou
seja "X > 4", que no caso correspondem: result = 5 6 7 8 9.
É neste ponto que não consigo entender porque ele não segue
analisando TODA estrutura do bloco: { $_ > 4 ? 2 * $_ : 0 * $_ },
ou seja, ele só me retorna os valores que deixam a expressão
verdadeira, ou seja, somente os itens que são maiores que 4 ($_ > 4).
Pelo que estou vendo, quando se usa o Grep, ele me traz os itens
do array de entrada que "deixa verdadeira" as condições do Bloco?
Seria mais ou menos isso?
Sim, exatamente isso. E porque, no Perl, o valor 0 (zero) é
considerado 'falso' e valores != 0 (não-zero) são considerados
'verdadeiro'. Assim, o grep funciona da seguinte forma: retorne todos
os elementos do array de entrada *para os quais a execução do { BLOCO
} retorne VERDADEIRO*.
Os exemplos do Ulisses, também neste thread, foram melhores até que os
meus. Dê uma olhada.
[]s,
--
Alexei "RUSSOZ" Znamensky
[russoz_gmail_com] [russoz.wordpress.com
<http://russoz.wordpress.com>] [www.flickr.com/photos/alexeiz
<http://www.flickr.com/photos/alexeiz>] [https://github.com/russoz]
Only love / Can bring the rain / That makes you yearn to the sky
=begin disclaimer
Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
SaoPaulo-pm mailing list: [email protected]
L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer
=begin disclaimer
Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
SaoPaulo-pm mailing list: [email protected]
L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer