[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