[SP-pm] grep e map
Eden Cardim
edencardim at gmail.com
Mon May 30 00:11:24 PDT 2011
>>>>> "Ulisses-IBIZ" == Ulisses-IBIZ <ulisses em ibiz.com.br> 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
More information about the SaoPaulo-pm
mailing list