[SP-pm] bons hábitos em perl->sugestões?

Thiago Rondon thiago at aware.com.br
Thu Jul 31 08:21:49 PDT 2008


É, acredito que os três tem lugar.

O open é melhor pela conveniencia e praticidade que oferece, e resolve a 
maioria dos problemas
que você pode ter, em relação ao sistema operacional, assim como 
controles de file descriptors
em sua aplicação.

O sysopen pela precisão que ele pode lhe oferecer nas operações mais 
delicadas, porém você
deve tomar alguns cuidados, enquanto o open cuida de tudo para você em 
relação ao sistema
operacional (como por exemplo o número do "file descriptor", alguns unix 
(antigos, sim) tem
limitações para file descriptor (que também é ajustado) no sistema 
operacional, como um
número baixo, como "255" (você deve ler o open(2) e verificar o seu 
/proc por exemplo)).

Ou seja, para usar o sysopen você tem que estar por 'dentro' da 
configuração e a maneira que
o seu sistema operacional estará lidando com as operaçoes de leitura, ou 
tratar todas elas no
código perl.

Porém, em alguns casos como por exemplo, a utilização de flags como 
O_TRUNC, O_SYNC,
O_SHLOCK, O_EXLOCK, O_BINARY e O_NOCTTY na abertura de arquivos, ou 
mascara de
arquivos a serem criados, alguns tratamentos que o sistema operacional 
pode lhe oferecer pelo
open (existem diferenças nestes detalhes entre os sistemas operacionais, 
mesmo nos sistemas
padrões POSIX).

Ou seja, utilize o sysopen apenas se souber o que estiver fazendo 
realmente, e se a necessidade
para trabalhar com arquivos de audio, binarios, rede talvez você possa 
precisar...

porém...

IO::File é interessante por que aceita os dois 'estilos' de nomeclatura 
de permissão, tanto do open como
do sysopen, é além disso lida melhor com o 'handle' do arquivo em alguns 
casos (caso você for
ver ele, veja algumas caracteristicas como o 'anonymous filehandler').

Ou seja, o IO::File  normalmente trata todos os eventos, tanto em um 
caso como o outro, e tem
todas as facilidades do Perl, porém é um modulo a mais... E se você 
precisar de otimizações, terão
várias outras soluções no Perl, como a própria open. hehehe

Eu ? Costumo a usar a open na maioria dos casos, a não ser em operações 
especiais que preciso
de recursos da sysopen.

Confuso ? Por isto gosto do Perl! por que cada um escolhe um caminho, e 
cada um faz da sua maneira.

Abs!
-Thiago Rondon


André Garcia Carneiro escreveu:
> Nada contra você usar sysopen. Só acho que poderia deixar o código mais atualizado, usando um módulo  mais
> novo(não menos estável), como IO::File.
>
> Cheers!
>
>
> ---------- Cabeçalho original -----------
>
> De: saopaulo-pm-bounces+andre.garcia.carneir=terra.com.br em pm.org
> Para: saopaulo-pm em mail.pm.org
> Cópia: 
> Data: Thu, 31 Jul 2008 09:40:35 -0300
> Assunto: Re: [SP-pm]	bons hábitos em perl->sugestões?
>
>   
>>> Lucas, sysopen() é uma função de baixo nível, não deveria ser usada no
>>>       
>> dia-a-dia: você perde praticamente todos os benefícios e flexibilidade da
>> implementação de open() do Perl, que é
>>
>>     
>>> simplesmente fantástico.
>>>       
>>> Eu sugiro a você parar de programar como se o perl mais recente que
>>>       
>> houvesse fosse o 4.0 ;)
>>
>>     
>>> Putamplexos!
>>>       
>> A função sysopen não garante melhor a segurança para manipulação de arquivos
>> ? Apesar de custar um pouco mais caro. Na verdade nem sempre uso sysopen,
>> uso open apenas para operações menos criticas.
>>
>>
>> 2008/7/31 André Garcia Carneiro <andre.garcia.carneir em terra.com.br>
>>
>>     
>>> #! /usr/bin/perl
>>>
>>> use strict;
>>> use warnings;
>>>
>>> open my $fh,'<','meu_arquivo_de_exemplo.txt' or die $!;
>>>
>>> --------------------|----|--------------------------------------------------|
>>>      1              2                        3
>>>
>>> .
>>> .
>>> .
>>>
>>>
>>> Cheers!
>>>
>>>
>>> PS: perldoc -f open é mais esclarecedor do q eu escrevi... rs!
>>>
>>> ---------- Cabeçalho original -----------
>>>
>>> De: saopaulo-pm-bounces+andre.garcia.carneir=terra.com.br em pm.org
>>> Para: saopaulo-pm em mail.pm.org
>>> Cópia:
>>> Data: Thu, 31 Jul 2008 00:34:43 -0300
>>> Assunto: Re: [SP-pm]    bons hábitos em perl->sugestões?
>>>
>>>       
>>>>> open com 3 argumentos
>>>>>           
>>>> ??????????????
>>>>
>>>> 2008/7/31 Blabos de Blebe <blabos em gmail.com>
>>>>
>>>>         
>>>>> Perl Best Practices
>>>>>
>>>>>
>>>>>
>>>>>           
>>>       
> http://books.google.com.br/books?id=gJf9tI2mytIC&dq=perl+best+pratices&pg=PP1&ots=Hk_hjOuBgp&sig=FOCKLLKxBwaHZeVLxObkBOMmhF4&hl=pt-BR&sa=X&oi=book_result&resnum=1&ct=result
>   
>>>>> 2008/7/31 Gabriel Vieira <gabriel.vieira em gmail.com>:
>>>>>           
>>>>>> use warnings;
>>>>>> PerlTidy
>>>>>> open com 3 argumentos
>>>>>> documentação (comentários)
>>>>>>
>>>>>> On Thu, Jul 31, 2008 at 12:23 AM, Geraldo Netto <
>>>>>>             
>>> geraldonetto em gmail.com>
>>>       
>>>>> wrote:
>>>>>           
>>>>>>> Opa,
>>>>>>> Tudo ok Senhores?
>>>>>>>
>>>>>>> como newbie que sou, eu gostaria de saber o que vcs sugerem
>>>>>>> como bons hábitos quando se programa em perl
>>>>>>> até agora, eu só cheguei no 'use strict'
>>>>>>> o que mais vcs sugerem?
>>>>>>>
>>>>>>> Abraços!
>>>>>>>
>>>>>>> Geraldo
>>>>>>> ps: quando vai ser o proximo encontro social?
>>>>>>> São Paulo, Brasil, -3gmt
>>>>>>> site: http://exdev.sf.net/
>>>>>>> msn: geraldo_boca_at_hotmail.com
>>>>>>> skype: geraldo-netto
>>>>>>> icq: 145-061-456
>>>>>>> _______________________________________________
>>>>>>> SaoPaulo-pm mailing list
>>>>>>> SaoPaulo-pm em pm.org
>>>>>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>>>>>
>>>>>>>               
>>>>>>
>>>>>> --
>>>>>> Gabriel Vieira
>>>>>> _______________________________________________
>>>>>> SaoPaulo-pm mailing list
>>>>>> SaoPaulo-pm em pm.org
>>>>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>>>>
>>>>>>             
>>>>> _______________________________________________
>>>>> SaoPaulo-pm mailing list
>>>>> SaoPaulo-pm em pm.org
>>>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>>>
>>>>>           
>>> --
>>> André Garcia Carneiro
>>> Developer(Perl/PHP)
>>> Member of "São Paulo Perl Mongers" - http://sao-paulo.pm.org
>>>
>>> _______________________________________________
>>> SaoPaulo-pm mailing list
>>> SaoPaulo-pm em pm.org
>>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>>
>>>       
>
> --
> André Garcia Carneiro
> Developer(Perl/PHP)
> Member of "São Paulo Perl Mongers" - http://sao-paulo.pm.org
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
>
>
>   



More information about the SaoPaulo-pm mailing list