<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Em 4 de fevereiro de 2015 17:44, Kleber Rodrigo de Carvalho <span dir="ltr"><<a href="mailto:kleber.carvalho@gmail.com" target="_blank">kleber.carvalho@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Pessoal,<br>
<br>
Muito obrigado pela ajuda.<br>
<br>
Eu estava com 2 dúvidas.<br>
<br>
1) LOGFILE or INFILE<br>
<br>
Achei LOGFILE or INFILE eram tipos de filehandle para leitura e<br>
escrita de arquivo. Me desculpe, descrobri que são apenas nomes de<br>
várias.<br>
<br>
2)<br>
<span class=""><br>
> Minha duvida é:<br>
<br>
 > seek($filehandler, 0, 2);<br>
 > $curreof = tell($filehandler);<br>
 >  print("curreof=" . $curreof . "\n");<br>
<br>
 > Porque quando eu executo esse trecho de código acima usando<br>
LOGFILE, eu recebo curreof=56666091<br>
<br>
</span>Descobri que esse 56666091 (Gabriel, Renato, Daniel Vinciguerra e<br>
Daniel ) na verdade é o tamanho do arquivo em bytes/caracteres.<br></blockquote><div><br></div><div>Isso na hora em que você para de processar o arquivo é verdade :p</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Muito obrigado a todos pela ajuda.<br>
<span class=""><br>
Abraços<br>
Kleber Rodrigo de Carvalho<br>
Engenheiro de Software<br>
KleberCarvalho.com | (15) 9-9161-3362<br>
<br>
<br>
</span>2015-02-04 15:51 GMT-02:00 Daniel de Oliveira Mantovani<br>
<div class="HOEnZb"><div class="h5"><<a href="mailto:daniel.oliveira.mantovani@gmail.com">daniel.oliveira.mantovani@gmail.com</a>>:<br>
> BTW, você está lendo o arquivo de log do WebSphere Application Server,<br>
> SystemOut.log mesmo que você consiga implementar o "tail" que você está<br>
> tentando implementar, você vai ter problemas pois o WebSphere Application<br>
> Server "rotate" o arquivo, sendo assim o seu programa vai perder o ID do<br>
> descritor de arquivos e vai parar de funcionar. Para resolver o problema,<br>
> além de você implementar o seu "tail", você precisa ficar verificando se o<br>
> ID do SystemOut.log mudou. É fácil de implementar e você vai aprender vários<br>
> conceitos de Unix-like do caminho, estamos aqui para ajudar.<br>
><br>
> 2015-02-04 15:45 GMT-02:00 Daniel de Oliveira Mantovani<br>
> <<a href="mailto:daniel.oliveira.mantovani@gmail.com">daniel.oliveira.mantovani@gmail.com</a>>:<br>
><br>
>> Kleber, tem um livro chamado Advanced Programming In the Unix Environment.<br>
>> Eu recomendo você ler o capítulo 3 - File I/O a sua dúvida não tem a ver com<br>
>> Perl e sim com conceitos de O.S.<br>
>><br>
>> 2015-02-04 15:10 GMT-02:00 Renato Santos <<a href="mailto:renato.cron@gmail.com">renato.cron@gmail.com</a>>:<br>
>><br>
>>> seu programa já está feito, alguem que criou esses nomes e filehandles.<br>
>>><br>
>>> o seek esta mandando ir para a ultima posicao (3 parametro com valor 2).<br>
>>> o tell esta mandando retornar a posicao atual.<br>
>>><br>
>>> signfica que o LOGFILE esta na posicao 56666091(bytes/char?)<br>
>>><br>
>>> 2015-02-04 15:01 GMT-02:00 Kleber Rodrigo de Carvalho<br>
>>> <<a href="mailto:kleber.carvalho@gmail.com">kleber.carvalho@gmail.com</a>>:<br>
>>><br>
>>>> Olá<br>
>>>><br>
>>>> Disponibilizei meu código aqui: <a href="http://pastebin.com/T6AGHm2n" target="_blank">http://pastebin.com/T6AGHm2n</a><br>
>>>><br>
>>>><br>
>>>> Minha duvida é:<br>
>>>><br>
>>>>  seek($filehandler, 0, 2);<br>
>>>>  $curreof = tell($filehandler);<br>
>>>>  print("curreof=" . $curreof . "\n");<br>
>>>><br>
>>>><br>
>>>> Porque quando eu executo esse trecho de código acima usando LOGFILE,<br>
>>>> eu recebo curreof=56666091<br>
>>>> O que isso significar?<br>
>>>><br>
>>>> Obrigado<br>
>>>><br>
>>>> Abraços<br>
>>>> Kleber Rodrigo de Carvalho<br>
>>>> Engenheiro de Software<br>
>>>> KleberCarvalho.com | (15) 9-9161-3362<br>
>>>><br>
>>>> Cara, estou achando que você está lendo um programa já feito, que esta<br>
>>>> usando *FILEHANDLE* em si, com esses nomes (LOGFILE, INLINE)<br>
>>>><br>
>>>> O jeito mais seguro, é usar um FH dentro de uma ref,<br>
>>>><br>
>>>> # ler em binario<br>
>>>> open(my $fh, '<:raw', '/tmp/foo.bin');<br>
>>>> while( my $somebytes = <$fh>){ . .. }<br>
>>>><br>
>>>> # ler em utf8<br>
>>>> open(my $fh, '<:utf8', '/tmp/tmp.utf8');<br>
>>>> while( my $line = <$fh>){ . .. }<br>
>>>><br>
>>>> # escrever em utf8<br>
>>>> open(my $fh, '>:utf8', '/tmp/tmp.utf8');<br>
>>>> print $fh "uma linha\n";<br>
>>>><br>
>>>><br>
>>>><br>
>>>> 2015-02-04 14:07 GMT-02:00 Gabriel Vieira <gabriel.vieira at <a href="http://gmail.com" target="_blank">gmail.com</a>>:<br>
>>>><br>
>>>> Cara, estou achando que você está lendo um programa já feito, que esta<br>
>>>> usando *FILEHANDLE* em si, com esses nomes (LOGFILE, INLINE)<br>
>>>><br>
>>>> O jeito mais seguro, é usar um FH dentro de uma ref,<br>
>>>><br>
>>>> # ler em binario<br>
>>>> open(my $fh, '<:raw', '/tmp/foo.bin');<br>
>>>> while( my $somebytes = <$fh>){ . .. }<br>
>>>><br>
>>>> # ler em utf8<br>
>>>> open(my $fh, '<:utf8', '/tmp/tmp.utf8');<br>
>>>> while( my $line = <$fh>){ . .. }<br>
>>>><br>
>>>> # escrever em utf8<br>
>>>> open(my $fh, '>:utf8', '/tmp/tmp.utf8');<br>
>>>> print $fh "uma linha\n";<br>
>>>><br>
>>>><br>
>>>><br>
>>>> 2015-02-04 14:07 GMT-02:00 Gabriel Vieira <gabriel.vieira at <a href="http://gmail.com" target="_blank">gmail.com</a>>:<br>
>>>><br>
>>>> > Qual a diferença de comportamento que você observou?<br>
>>>> ><br>
>>>> > 2015-02-04 11:05 GMT-05:00 Kleber Rodrigo de Carvalho <<br>
>>>> > kleber.carvalho at <a href="http://gmail.com" target="_blank">gmail.com</a>>:<br>
>>>> ><br>
>>>> > Pessoal,<br>
>>>> >><br>
>>>> >> Estou escrevendo um programa em Perl, e preciso entender as<br>
>>>> >> diferenças entre os FILEHANDLE.<br>
>>>> >> Por exemplo, um programa lendo um arquivo usando LOGFILE se comporta<br>
>>>> >> diferente de um usando INFILE.<br>
>>>> >> Estou procurando na internet por:<br>
>>>> >><br>
>>>> >> perl FILEHANDLE LOGFILE INFILE<br>
>>>> >> perl LOGFILE INFILE<br>
>>>> >><br>
>>>> >> Mas não encontrei nada. Se encontra todos os tipos de FILEHANDLE já<br>
>>>> >> ajudaria.<br>
>>>> >> Será que alguém poderia me ajudar nisso?<br>
>>>> >><br>
>>>> >> Muito obrigado<br>
>>>> >><br>
>>>> >> Abraços<br>
>>>> >> Kleber Rodrigo de Carvalho<br>
>>>> >> Engenheiro de Software<br>
>>>> >> KleberCarvalho.com | (15) 9-9161-3362<br>
>>>> =begin disclaimer<br>
>>>>    Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
>>>>  SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
>>>>  L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
>>>> =end disclaimer<br>
>>><br>
>>><br>
>>><br>
>>><br>
>>> --<br>
>>> Saravá,<br>
>>> Renato CRON<br>
>>> <a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a><br>
>>> @renato_cron<br>
>>><br>
>>> =begin disclaimer<br>
>>>    Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
>>>  SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
>>>  L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
>>> =end disclaimer<br>
>>><br>
>><br>
>><br>
>><br>
>> --<br>
>><br>
>> -dom<br>
>><br>
>> --<br>
>><br>
>> Daniel de Oliveira Mantovani<br>
>> Business Analytic Specialist<br>
>> Perl Evangelist /Astrophysics hobbyist.<br>
>> <a href="tel:%2B55%2011%209%208538-9897" value="+5511985389897">+55 11 9 8538-9897</a><br>
>> XOXO<br>
><br>
><br>
><br>
><br>
> --<br>
><br>
> -dom<br>
><br>
> --<br>
><br>
> Daniel de Oliveira Mantovani<br>
> Business Analytic Specialist<br>
> Perl Evangelist /Astrophysics hobbyist.<br>
> <a href="tel:%2B55%2011%209%208538-9897" value="+5511985389897">+55 11 9 8538-9897</a><br>
> XOXO<br>
><br>
> =begin disclaimer<br>
>    Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
>  SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
>  L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
> =end disclaimer<br>
><br>
=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Leonardo Ruoso<div>Journalist, Perl developer and business consultant<br><div>Media, UFC/2006; Telecom, IFCE/1998</div></div></div>
</div></div>