>>>>> "Ulisses-IBIZ" == Ulisses-IBIZ <[email protected]> writes:
Ulisses-IBIZ> exemplo de grep x map
Ulisses-IBIZ> ----------------------------------
Ulisses-IBIZ> my @lista = ('a', 'b', 'c');
# o mesmo que @lista = qw/a b c/;
Ulisses-IBIZ> my @lista_grep = grep { $_ eq 'c' } @lista; #
@lista_grep = ('c'); a condicao $_ eq 'c' somente eh verdadeira,
Ulisses-IBIZ> obviamente, para o elemento 'c'
Ulisses-IBIZ> my @lista_map = map { uc $_ } @lista; #
@lista_map = qw/A B C/; uppercase em todos os elementos
Ulisses-IBIZ> my @impares = grep { $_ % 2 } qw/1 2 3 4 5 6 7 8 9/; #
@impares = qw/1 3 5 7 9/; a expressao $_ % 2 eh o resto da divisao
Ulisses-IBIZ> por 2 que da 1 (true) para os caras impares
Ulisses-IBIZ> my @dobro = map { 2 * $_ } qw/1 2 3 4 5 6 7 8 9/; #
@dobro = qw/2 4 6 8 10 12 14 16 18/; dobra o valor de CADA
Ulisses-IBIZ> elemento
Dá pra emular o comportamento do grep com map, talvez fique mais fácil
entender a diferença entre dois:
my @maior_que_cinco = grep { $_ > 5 } 1..10; # 6, 7, 8, 9, 10
my @maior_que_cinco = map { $_ > 5 ? $_ : () } 1..10; # 6, 7, 8, 9, 10
grep é só um caso bem comum de map, então tem uma sintaxe abreviada e
uma otimização no backend do perl, pra esse caso.
--
Eden Cardim Need help with your Catalyst or DBIx::Class project?
Code Monkey http://www.shadowcat.co.uk/catalyst/
Shadowcat Systems Ltd. Want a managed development or deployment platform?
http://blog.edencardim.com/ http://www.shadowcat.co.uk/servers/
http://twitter.com/#!/edenc
=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