[Rio-pm] print() on closed filehandle

Aureliano Guedes guedes_1000 em hotmail.com
Domingo Outubro 21 16:41:08 PDT 2012


Isso é que é sacar do assunto.

From: tiago.peczenyj em gmail.com
Date: Sun, 21 Oct 2012 18:45:15 -0200
To: rio-pm em pm.org
Subject: Re: [Rio-pm] print() on closed filehandle

um beijo pra vc também

2012/10/21 Stanislaw Pusep <creaktive em gmail.com>


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



_______________________________________________

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/143519e9/attachment-0001.html>


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