[Cascavel-pm] Legibilidade do map()... [Was: Duvida $dbh->prepare]
Nilson Santos Figueiredo Junior
acid06 em gmail.com
Domingo Janeiro 28 17:25:32 PST 2007
On 1/28/07, Luis Motta Campos <luismottacampos em yahoo.co.uk> wrote:
> OK, ok, voces me convenceram.
> Vou parar de usar map() onde cabe foreach()...
Se o suposto ganho de performance foi o que te convenceu, então talvez
você devesse voltar a utilizar o map(), uma vez que ele é ~2% mais
rápido no caso geral.
A razão correta para se utilizar foreach() é semântica e por isto esta
forma é a recomendada, independentemente do ganho ou perda de
performance - ao contrário do que você deixou a entender (i.e. a
maneira com melhor tempo de execução nem sempre é a maneira
correta/recomendada).
Mas se eu entendi mal e você realmente entendeu a motivação por trás
da utilização de foreach() ao invés de map() - a semântica - então
pode desconsiderar esse email.
Vale lembrar que essa discussão é a mesma de "scalar @array" vs. "$#array + 1".
Por exemplo, para descobrir o número de itens contido em uma array e
salvar em uma variável, muitas pessoas poderiam escrever:
my $ary_length = $#array + 1;
Enquanto a forma semanticamente correta seria:
my $ary_length = scalar @array;
Ou ainda, de forma mais concisa e menos explícita:
my $ary_length = @array;
Dessas ambigüidades originam uma boa parte do TIMTOWTDI da linguagem Perl.
-Nilson Santos F. Jr.
Mais detalhes sobre a lista de discussão Cascavel-pm