[Rio-pm] print() on closed filehandle

Stanislaw Pusep creaktive em gmail.com
Domingo Outubro 21 13:44:16 PDT 2012


Assumindo que o MP3 tenha uma entropia próxima de 8 bits por byte (algo que
definitivamente não vale para um arquivo .pl, por mais que nos caçoem), um
arquivo de 6,16MB poderá ter cerca de 25 mil ocorrências de \x0A. Mapeando
CR => CRLF, pode crescer em cerca de 50KB. Acho que 6,19MB está dentro da
faixa :)

ABS()



2012/10/21 Tiago Peczenyj <tiago.peczenyj em gmail.com>

> mas isso nao explica o tamanho do video ser tão diferente...
>
>
> 2012/10/21 Stanislaw Pusep <creaktive em gmail.com>
>
>> Você usa Windows, não?
>> Neste caso, precisa dar um binmode($fh) logo após o open($fh, ...). Ou
>> então abrir o handle como open($fh, '>:raw', 'nome.mp3').
>> O erro acontece por que o Perl do Windows substitui byte \x0A pela
>> sequencia \x0D\x0A em arquivos "texto".
>> Em arquivo não-"texto", isso não é nada bom.
>>
>> ABS()
>>
>>
>>
>>
>> 2012/10/21 Aureliano Guedes <guedes_1000 em hotmail.com>
>>
>>>  Não ainda, vou experimentar e volto com os resultados.
>>>
>>> ------------------------------
>>> From: tiago.peczenyj em gmail.com
>>> Date: Sun, 21 Oct 2012 17:54:30 -0200
>>>
>>> To: rio-pm em pm.org
>>> Subject: Re: [Rio-pm] print() on closed filehandle
>>>
>>> então alguma coisa acontece durante o transporte ou o protocolo de
>>> transmissão. estou sem tempo de analisar mas vc experimento usar o
>>> wireshark?
>>>
>>> 2012/10/21 Aureliano Guedes <guedes_1000 em hotmail.com>
>>>
>>>  MD5 diferente, ate o tamanho do arquivo é diferente, baixei o original
>>> pelo FF e a musica esta normal, alem, de que tem o tamanho de 6,16MB.
>>> Em contrapartida o arquivo obtido pelo script fica com 6,19MB.
>>>
>>> Ja tentei baixar denovo, continua o mesmo problema.
>>> ------------------------------
>>> From: tiago.peczenyj em gmail.com
>>> Date: Sun, 21 Oct 2012 17:25:59 -0200
>>>
>>> To: rio-pm em pm.org
>>> Subject: Re: [Rio-pm] print() on closed filehandle
>>>
>>> analise o arquivo original e o que vc esta salvando, vc pode ter
>>> corrompido algum byte. se o md5 dos dois for igual o problema é outro, se
>>> for diferente analise o que o ffmpeg -i diz do arquivo (ele vai analisar o
>>> cabeçalho do mp3).
>>>
>>> 2012/10/21 Aureliano Guedes <guedes_1000 em hotmail.com>
>>>
>>>  Realmente, um erro por falta de atenção. Agora deu certo.
>>>
>>> Contudo, os arquivos chegam com algum problema que não sei o que é.
>>>
>>> As musicas não tocam normalmente, elas ficam com um barulho estranho e
>>> quase não da para reconhecer a musica, é como se estivesse acelerado.
>>>
>>> Será que é problemas calsado devido a forma que estou manipulando esse
>>> tipo de arquivo?
>>>
>>> ------------------------------
>>> From: tiago.peczenyj em gmail.com
>>> Date: Sun, 21 Oct 2012 16:57:12 -0200
>>> To: rio-pm em pm.org
>>> Subject: Re: [Rio-pm] print() on closed filehandle
>>>
>>>
>>> sem falar que esta usando open com 2 argumentos. tente usar com 3
>>> argumentos separando o modo de abrir do nome do arquivo com uma virgula ao
>>> inves de um ponto para concatenar. alias vc pode interpolar assim
>>>
>>> open my $fh,">","$nome.mp3";
>>>
>>> ou
>>>
>>> open my $fh,">","${nome}.mp3";
>>>
>>> On Sun, Oct 21, 2012 at 4:54 PM, Ole Peter Smith <ole.ufg em gmail.com>wrote:
>>>
>>> espacos no nome do arquivo? (sempre, como letras acentuadas,
>>> abominavel...)
>>> 0le
>>> Send via Android
>>> On Oct 21, 2012 3:38 PM, "Aureliano Guedes" <guedes_1000 em hotmail.com>
>>> wrote:
>>>
>>>  Ola monges.
>>>
>>> Estou com problema para salvar arquivos *.mp3 recebidos via download.
>>>
>>> Ao salvar a mensagem retornada é 'print () on closed filehandle FH at
>>> C:\User\AG\Desktop\mes.pl  line 31.'.
>>>
>>> O sistema so retorna 'Invalid argument' quando uso o $!.
>>>
>>> Então usei o autodie para ver o que me retornava:
>>> "Can't open '>Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid
>>> argument' C:\User\AG\Desktop\mes.pl  line 19."
>>>
>>> Enfim, não estou entendendo o erro retornado.
>>>
>>> http://pastebin.com/qxCMLv1V
>>>
>>> #!/usr/bin/env perl
>>>
>>> use common::sense;
>>> use WWW::Mechanize;
>>> use autodie;
>>>
>>>
>>> sub parse {
>>>     my ($self) = shift;
>>>     $self =~ s/\s+/\+/g;
>>>     chomp $self;
>>>     print "Now --> " . $self . "\n\n";
>>>     return ("http://www.buscamp3.org/busca/" . $self);
>>> }
>>>
>>> sub gd {
>>>     my ($self, $name) = @_;
>>>     print $self . " == " . $name . "\n\n";
>>>     open my $fh,">". $name . ".mp3";
>>>     my $m = WWW::Mechanize->new();
>>>     my $p = $m->get($self);
>>>     $p = $p->decoded_content;
>>>     $m->max_redirect(1);
>>>     my @Links = $m->links();
>>>     my $w = 0;
>>>     SWU: foreach my $link(@Links){
>>>         my @a = split ("/", $link->url());
>>>         if ($a[1] =~ m/dl/gi){
>>>             print "OK!\n";
>>>             my $c = $m->get("http://www.buscamp3.org" . $link->url());
>>>             print $fh $c->decoded_content;
>>>             close $fh;
>>>             $w = 1;
>>>         }
>>>         last SWU if ($w == 1);
>>>     }
>>>     undef $m;
>>> }
>>>
>>>
>>> open IN, $ARGV[0] or die;
>>>
>>> foreach (<IN>){
>>>     print "Search for: " . $_ . "\n";
>>>     my $a = parse($_);
>>>     gd($a, $_);
>>>     print "\n\n";
>>> }
>>>
>>> _______________________________________________
>>> Rio-pm mailing list
>>> Rio-pm em pm.org
>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>
>>>
>>> _______________________________________________
>>> Rio-pm mailing list
>>> Rio-pm em pm.org
>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>
>>>
>>>
>>>
>>> --
>>> Tiago B. Peczenyj
>>> Linux User #405772
>>>
>>> http://pacman.blog.br
>>>
>>> _______________________________________________ Rio-pm mailing list
>>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm
>>>
>>> _______________________________________________
>>> Rio-pm mailing list
>>> Rio-pm em pm.org
>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>
>>>
>>>
>>>
>>> --
>>> Tiago B. Peczenyj
>>> Linux User #405772
>>>
>>> http://pacman.blog.br
>>>
>>> _______________________________________________ Rio-pm mailing list
>>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm
>>>
>>> _______________________________________________
>>> Rio-pm mailing list
>>> Rio-pm em pm.org
>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>
>>>
>>>
>>>
>>> --
>>> Tiago B. Peczenyj
>>> Linux User #405772
>>>
>>> http://pacman.blog.br
>>>
>>> _______________________________________________ Rio-pm mailing list
>>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm
>>>
>>> _______________________________________________
>>> Rio-pm mailing list
>>> Rio-pm em pm.org
>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>
>>
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>
>
>
> --
> Tiago B. Peczenyj
> Linux User #405772
>
> http://pacman.blog.br
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20121021/0b87c353/attachment-0001.html>


Mais detalhes sobre a lista de discussão Rio-pm