[SP-pm] FILEHANDLE LOGFILE or INFILE

Leonardo Ruoso leonardo at ruoso.com
Thu Feb 5 12:57:43 PST 2015


Em 4 de fevereiro de 2015 15:51, Daniel de Oliveira Mantovani <
daniel.oliveira.mantovani em gmail.com> escreveu:

> 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.
>

Hmmm, o POE::Wheel::FollowTail e muitos outros módulos fazem isso de graça
:D



>
> 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 <http://twitter.com/#!/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
>
>


-- 
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/9c2574e5/attachment-0001.html>


More information about the SaoPaulo-pm mailing list