[Cascavel-pm] [OFF] Bombril [Era: Re: Somar elementos numericos de um array]
Igor Sutton Lopes
igor.sutton em gmail.com
Segunda Abril 9 08:49:54 PDT 2007
Olá,
On 2007/04/09, at 16:30, Víctor A. Rodríguez wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Patty,
>
> Patty Silva wrote:
>> Pessoal.. tem como eu somar elementos numericos de um array?
>> ex:
>> @teste=(1,2,4,1,3,1,1,1,4,56,7,8,9);
>> somar=1+2+4+1+3....
>> sem precisar do for?
>
> a map e seu amigo !!
>
> my $suma;
> map { $suma += $_ } @teste;
Acredito que vale a pena estudar um pouco os módulos padrão do Perl,
antes de fazer coisas como esta. Existem os módulos List::Util,
Hash::Util e Scalar::Util. Aqui está a explicação da razão destes
módulos existirem (trecho extraído de 'perldoc Scalar::Util':
"Scalar::Util" contains a selection of subroutines that
people have
expressed would be nice to have in the perl core, but the
usage would
not really be high enough to warrant the use of a keyword,
and the size
so small such that being individual extensions would be
wasteful.
Agora vem o tradicional momento de perguntar 'se é tão simples, por
que usamos um módulo ao invés de usar os equivalentes das maneiras x,
y e z?'.
1. Fazem parte do core do Perl, sendo encontrados em todas as
plataformas disponíveis em Perl;
2. São mais optimizados que o map, for e amigos;
3. Se o core do Perl for modificado, com certeza eles também serão
modificados e se beneficiarão das optimizações presentes no Perl.
Outro grande erro é a falta de informação -ou memória- que se tem em
relação às diversas soluções modulares em Perl. Lembro-me quando foi
tópico anteriormente sobre buscar arquivos em diretórios, e ninguém
disse uma única vez 'File::Find', ou 'File::Find::Rule' ou
'File::Finder'. Mas o equívoco não foi somente aqui nesta lista, pois
quando fiz uma apresentação[1] para o Lisbon.pm Tech Meeting,
perguntei quantos dos presentes conheciam o File::Spec, o File::Path,
os File::Find's e a resposta foi decepcionante.
Minha dica aqui é: leiam a documentação dos módulos que vêm com o
Perl, aprendam sobre eles, façam apontamentos como 'módulos que
gostaria de usar' e coisas do tipo. Anotem em algum lugar o que eles
fazem e consultem quando tiverem algum problema. Reservem alguns
minutos do seu dia para ler o Perlmonks[2] e ver que tipo de dúvidas
as pessoas tem e quais são as suas respostas. Ler sobre problemas
diferentes podem dar-lhes soluções para os problemas que possuem.
[1] http://lisbon.pm.org/slides/
[2] http://www.perlmonks.org/
--
Igor Sutton
igor.sutton em gmail.com
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070409/86c0c3d2/attachment-0001.html
-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome : PGP.sig
Tipo : application/pgp-signature
Tam : 186 bytes
Descr.: This is a digitally signed message part
Url : http://mail.pm.org/pipermail/cascavel-pm/attachments/20070409/86c0c3d2/attachment-0001.bin
Mais detalhes sobre a lista de discussão Cascavel-pm