[Rio-pm] Hashes que referenciam (arrays variáveis?)

Wendel Scardua wendelscardua em gmail.com
Terça Setembro 16 12:57:34 PDT 2008


2008/9/16 Alexei Znamensky <russoz em gmail.com>

>
>
> 2008/9/16 Samir Cury <rimasy em gmail.com>
>
>> Então pessoal,
>>
>> Hoje tentei por em prática a dica do Solli, mas esbarrei em algumas
>> coisas, a explicação resumão foi bem esclarescedora, mas me confirmem uma
>> coisa:
>>
>> quando eu dou por exemplo (nem sei se é possível, mas pelo visto sim)
>>
>> foreach $i(<$cmd_ls>) { code; }
>>
>> Eu não estaria ocupando memória tanto quanto usando um array porque eu
>> estou lendo de um arquivo temporário que seria o STDOUT do comando ??
>>
>
> Não porque debaixo dos panos o perl tá fazendo um fork, abrindo um processo
> novo, e delegando a comunicação entre processos para o sistema operacional -
> do mesmo jeito que funciona quando se usa um pipe na linha de comando. O
> pipe NÃO joga todo o stdout para a memória, ele vai lendo aos poucos em
> buffers dentro do kernel (naquele esquema producer/consumer, se você teve
> isso na faculdade ;-)
>
>

O pipe normalmente faz isso; então um loop while(<$cmd_ls>) { code; } vai
consumir aos poucos a saída.

Mas ele fez um foreach, não um while. Como o for itera sobre uma lista,
<$cmd_ls> vai devolver a lista de todas as linhas lidas, ocupando memória.

[]s
Wendel
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20080916/13292c90/attachment.html>


Mais detalhes sobre a lista de discussão Rio-pm