Flávio, 2011/5/29 "Flávio R. Lopes" <[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] [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
