[SP-pm] FILEHANDLE LOGFILE or INFILE
Daniel Vinciguerra
dan.vinciguerra at gmail.com
Wed Feb 4 09:22:35 PST 2015
Você pode entender mais sobre o open ou a manipulação de arquivos através
dos manuais:
$ perldoc -f open
$ perldoc perlopentut
Só pra tentar explicar melhor....
Segundo a primeira referencia citada acima, Perl possuis as seguintes
formas de se abrir um arquivo:
open FILEHANDLE,EXPR
open FILEHANDLE,MODE,EXPR
open FILEHANDLE,MODE,EXPR,LIST
open FILEHANDLE,MODE,REFERENCE
open FILEHANDLE
Onde:
FILEHANDLE = variável referente a operação
MODE = forma de manipulação (escrita, leitura, leitura e escrita)
EXPR = nome do arquivo
E onde as formas de utilização mais comumente encontradas são:
open(FH, '< arquivo/para/leitura.txt') or die "...";
Que poderia ser melhor escrita desta forma...
open my $fh, '<', 'arquivo/para/leitura.txt' or die "...";
Os FILEHANDLE, LOGFILE e INFILE a que você se refere são apenas nomes de
váriáveis que, assim como o cron, eu sugiro que mude para utilizar como
referencias usando $scalares.
O que determina como cada um irá se comportar é o MODE que pode ser
encontrado nas formas mais comuns como:
'<' para leitura
'>' para escrita (sobre escreve caso arquivo exista)
'>>' para escrita (adiciona ao final do arquivo caso ele exista)
Obs.: A supressão deste indica a abertura do arquivo pra leitura.
E é isso!!
Para concluir,
1. seu filehandle poderia se chamar até KLEBERRODRIGOEHOCARA que seria um
filehandle valido! ;)
2. leia as referencias no começo do e-mail
3. se tiver mais alguma duvida poste um pedaço do seu código pra ajudar o
pessoal a te ajudar
Grande abraço,
(se eu esqueci de algo alguém me ajuda ou me puxe a orelha) ;P
*Daniel Vinciguerra (@dvinciguerra)*
Web solution architect, perl dev, vegetarian, geek and co-founder at *Bivee*
bivee.com.br - github.com/Bivee
2015-02-04 14:15 GMT-02:00 Renato Santos <renato.cron at gmail.com>:
> Cara, estou achando que você está lendo um programa já feito, que esta
> usando *FILEHANDLE* em si, com esses nomes (LOGFILE, INLINE)
>
> O jeito mais seguro, é usar um FH dentro de uma ref,
>
> # ler em binario
> open(my $fh, '<:raw', '/tmp/foo.bin');
> while( my $somebytes = <$fh>){ . .. }
>
> # ler em utf8
> open(my $fh, '<:utf8', '/tmp/tmp.utf8');
> while( my $line = <$fh>){ . .. }
>
> # escrever em utf8
> open(my $fh, '>:utf8', '/tmp/tmp.utf8');
> print $fh "uma linha\n";
>
>
>
> 2015-02-04 14:07 GMT-02:00 Gabriel Vieira <gabriel.vieira at gmail.com>:
>
> Qual a diferença de comportamento que você observou?
>>
>> 2015-02-04 11:05 GMT-05:00 Kleber Rodrigo de Carvalho <
>> kleber.carvalho at gmail.com>:
>>
>> Pessoal,
>>>
>>> Estou escrevendo um programa em Perl, e preciso entender as
>>> diferenças entre os FILEHANDLE.
>>> Por exemplo, um programa lendo um arquivo usando LOGFILE se comporta
>>> diferente de um usando INFILE.
>>> Estou procurando na internet por:
>>>
>>> perl FILEHANDLE LOGFILE INFILE
>>> perl LOGFILE INFILE
>>>
>>> Mas não encontrei nada. Se encontra todos os tipos de FILEHANDLE já
>>> ajudaria.
>>> Será que alguém poderia me ajudar nisso?
>>>
>>> Muito obrigado
>>>
>>> Abraços
>>> Kleber Rodrigo de Carvalho
>>> Engenheiro de Software
>>> KleberCarvalho.com | (15) 9-9161-3362
>>> =begin disclaimer
>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> =end disclaimer
>>>
>>
>>
>>
>> --
>> Gabriel Vieira
>>
>> =begin disclaimer
>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>>
>
>
> --
> Saravá,
> Renato CRON
> http://www.renatocron.com/blog/
> @renato_cron <http://twitter.com/#!/renato_cron>
>
> =begin disclaimer
> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20150204/6802c15f/attachment.html>
More information about the SaoPaulo-pm
mailing list