[SP-pm] FILEHANDLE LOGFILE or INFILE

Leonardo Ruoso leonardo at ruoso.com
Thu Feb 5 13:14:44 PST 2015


Em 4 de fevereiro de 2015 17:44, Kleber Rodrigo de Carvalho <
kleber.carvalho em gmail.com> escreveu:

> Pessoal,
>
> Muito obrigado pela ajuda.
>
> Eu estava com 2 dúvidas.
>
> 1) LOGFILE or INFILE
>
> Achei LOGFILE or INFILE eram tipos de filehandle para leitura e
> escrita de arquivo. Me desculpe, descrobri que são apenas nomes de
> várias.
>
> 2)
>
> > Minha duvida é:
>
>  > seek($filehandler, 0, 2);
>  > $curreof = tell($filehandler);
>  >  print("curreof=" . $curreof . "\n");
>
>  > Porque quando eu executo esse trecho de código acima usando
> LOGFILE, eu recebo curreof=56666091
>
> Descobri que esse 56666091 (Gabriel, Renato, Daniel Vinciguerra e
> Daniel ) na verdade é o tamanho do arquivo em bytes/caracteres.
>

Isso na hora em que você para de processar o arquivo é verdade :p



>
> Muito obrigado a todos pela ajuda.
>
> Abraços
> Kleber Rodrigo de Carvalho
> Engenheiro de Software
> KleberCarvalho.com | (15) 9-9161-3362
>
>
> 2015-02-04 15:51 GMT-02:00 Daniel de Oliveira Mantovani
> <daniel.oliveira.mantovani em gmail.com>:
> > BTW, você está lendo o arquivo de log do WebSphere Application Server,
> > SystemOut.log mesmo que você consiga implementar o "tail" que você está
> > tentando implementar, você vai ter problemas pois o WebSphere Application
> > Server "rotate" o arquivo, sendo assim o seu programa vai perder o ID do
> > descritor de arquivos e vai parar de funcionar. Para resolver o problema,
> > além de você implementar o seu "tail", você precisa ficar verificando se
> o
> > ID do SystemOut.log mudou. É fácil de implementar e você vai aprender
> vários
> > conceitos de Unix-like do caminho, estamos aqui para ajudar.
> >
> > 2015-02-04 15:45 GMT-02:00 Daniel de Oliveira Mantovani
> > <daniel.oliveira.mantovani em gmail.com>:
> >
> >> Kleber, tem um livro chamado Advanced Programming In the Unix
> Environment.
> >> Eu recomendo você ler o capítulo 3 - File I/O a sua dúvida não tem a
> ver com
> >> Perl e sim com conceitos de O.S.
> >>
> >> 2015-02-04 15:10 GMT-02:00 Renato Santos <renato.cron em gmail.com>:
> >>
> >>> seu programa já está feito, alguem que criou esses nomes e filehandles.
> >>>
> >>> o seek esta mandando ir para a ultima posicao (3 parametro com valor
> 2).
> >>> o tell esta mandando retornar a posicao atual.
> >>>
> >>> signfica que o LOGFILE esta na posicao 56666091(bytes/char?)
> >>>
> >>> 2015-02-04 15:01 GMT-02:00 Kleber Rodrigo de Carvalho
> >>> <kleber.carvalho em gmail.com>:
> >>>
> >>>> Olá
> >>>>
> >>>> Disponibilizei meu código aqui: http://pastebin.com/T6AGHm2n
> >>>>
> >>>>
> >>>> Minha duvida é:
> >>>>
> >>>>  seek($filehandler, 0, 2);
> >>>>  $curreof = tell($filehandler);
> >>>>  print("curreof=" . $curreof . "\n");
> >>>>
> >>>>
> >>>> Porque quando eu executo esse trecho de código acima usando LOGFILE,
> >>>> eu recebo curreof=56666091
> >>>> O que isso significar?
> >>>>
> >>>> Obrigado
> >>>>
> >>>> Abraços
> >>>> Kleber Rodrigo de Carvalho
> >>>> Engenheiro de Software
> >>>> KleberCarvalho.com | (15) 9-9161-3362
> >>>>
> >>>> 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>:
> >>>>
> >>>> 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 em pm.org
> >>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> >>>> =end disclaimer
> >>>
> >>>
> >>>
> >>>
> >>> --
> >>> Saravá,
> >>> Renato CRON
> >>> http://www.renatocron.com/blog/
> >>> @renato_cron
> >>>
> >>> =begin disclaimer
> >>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> >>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
> >>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> >>> =end disclaimer
> >>>
> >>
> >>
> >>
> >> --
> >>
> >> -dom
> >>
> >> --
> >>
> >> Daniel de Oliveira Mantovani
> >> Business Analytic Specialist
> >> Perl Evangelist /Astrophysics hobbyist.
> >> +55 11 9 8538-9897
> >> XOXO
> >
> >
> >
> >
> > --
> >
> > -dom
> >
> > --
> >
> > Daniel de Oliveira Mantovani
> > Business Analytic Specialist
> > Perl Evangelist /Astrophysics hobbyist.
> > +55 11 9 8538-9897
> > XOXO
> >
> > =begin disclaimer
> >    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> >  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
> >  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> > =end disclaimer
> >
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>



-- 
Leonardo Ruoso
Journalist, Perl developer and business consultant
Media, UFC/2006; Telecom, IFCE/1998
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20150205/fb9e5f62/attachment-0001.html>


More information about the SaoPaulo-pm mailing list