[Cascavel-pm] Dúvida estúpida

"Iberê O. Kuntz de Souza" kuntzzz em gmail.com
Domingo Abril 15 09:23:48 PDT 2007


Obrigado, ja entendi.. quanto ao close, sinceramente eram poucas as 
vezes em que eu o usava.. prometo que mudarei meus habitos de acordo com 
a situacao.

Iberê

> Apenas completando o meu raciocinio, com a resposta do Adriano...
> 
> Vc abre quantos arquivos necessitar, com filehandles distintos ...
> 
> open(ARQ, "> arq1.txt") || die "F1: $!";
> open(ARQ2, "> arq2.txt") || die "F2: $!";
> 
> 
> Em 14/04/07, Adriano Ferreira<a.r.ferreira em gmail.com> escreveu:
>> On 4/14/07, "Iberê O. Kuntz de Souza" <kuntzzz em gmail.com> wrote:
>> > Acheii, ta aqui oh:
>> >
>> > "Nao feche seus arquivos com close - eles serao fechados no proximo
>> > open." - Eficiencia do programador, Programcao Perl 3ed.
>>
>> Isto significa que se você fizer
>>
>>     open ARQ, '>', 'arquivo1.txt' or die $!;
>>
>>     ...
>>
>>     # e depois
>>
>>     open ARQ, '>', 'arquivo2.txt' or die $!;
>>
>> O handle aberto para o 'arquivo1.txt' será fechado antes de abrir o
>> 'arquivo2.txt' (coisa que - se não me engano - a linguagem C não faz
>> para você). Como acima, esta observação serve para quando você usa o
>> mesmo filehandle (no caso o glob ARQ). Também valeria se você tivesse
>> aberto com uma variável léxica como hoje é recomendado.
>>
>>     open my $arq, '>', 'arquivo1.txt' or die $!;
>>
>> Por outro lado, este conselho é controverso também hoje. Muitos pregam
>> que o close deve ser explícito para evitar que você tenha de pensar
>> demais sobre onde este fechamento acontece. O close explícito é bom
>> para a manutenção do programa.
>>
>> Saudações,
>> Adriano.
>>
>>
> 
> 
> Quanto ao close para manutenção de codigo x eficiencia do
> programador... são os opostos... "Perl Best Practicals" x "Programming
> Perl, Advanced Programming Perl, etc".
> 
> Os dois casos se aplicam em situações distintas. Se vc vai fazer um
> script simples e de poucas linhas, para processar apenas alguns logs,
> não precisa se preocupar com manutenção, mas para sistemas maiores, é
> essencial!
> 
> 
> Isso é Perl levado a sério, não apenas a diversão que nos propicia ;)
> 
> 
> Sds,
> Marco Antonio 



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