[Rio-pm] Problemas com download
Aureliano Guedes
guedes_1000 em hotmail.com
Segunda Outubro 29 08:20:03 PDT 2012
Eduardo, obrigado pela resposta.
O modulo que faz o download(WWW::YouTube::Download) ja instrue que o arquivo é binario, esse modulo exclue a necessidade que fazer um 'open OUT, ...;' pois ele ja contem esse comando, inclusive passando em modo binario:
99 open my $wfh, '>', $file or Carp::croak $file, " $!";
100 binmode $wfh;
Date: Sun, 28 Oct 2012 23:38:55 -0300
From: maia em eduardomaia.com
To: rio-pm em pm.org
Subject: Re: [Rio-pm] Problemas com download
Olá, Aureliano, tudo bom?
Não costumo ter tempo de ver emails do grupo, nem de participar dos encontros. Lamentável.
Mas a ausência de respostas dessa thread, aliado a um eventual whisky descompromissado na frente do PC, fez eu estar aqui respondendo :)
Desconheço os módulos que você está usando, nunca precisei deles. Mas dei uma olhada no seu código, e duas coisas chamaram minha atenção:
1. Você disse ter problemas para salvar um arquivo binário em ambiente Windows.
2. Você passou o seguinte código:
open IN, $ARGV[0] or die $!;
save_vd (vdid($_)) foreach (<IN>);
Sendo que essa save_vd não tem uma instrução binmode. Tá com cara que você precisa dar um binmode. Vou explicar...
Quando precisamos salvar em disco um arquivo binário dentro de um "not Windows", a gente escreve o arquivo e pronto. Dentro de um Windows, não basta escrever o arquivo, tem que colocar uma instrução (após o open) dizendo que o arquivo é binário. Tipo isso:
open (OUT, ">video.flv");
binmode(OUT);
print OUT $bytes;
close(OUT);
Já segue o link para o Perldoc :)
http://perldoc.perl.ourg/fnctions/binmode.html
Perl Forever!!!!
Um abraço.
2012/10/28 Aureliano Guedes <guedes_1000 em hotmail.com>
Ola Monges,
Mais uma vez venho incomodar com meus problemas.
Aparentemente o modulo WWW::YouTube::Download não tem nenhum problema, mas quando eu uso em ambiente Windows ele salva o arquivo com defeitos, de forma que acaba não sendo lido pelos reprodutores de audio e video.
meu codigo -> http://pastebin.com/k7v6rWCr
Ja estou sem ideia de o que fazer. Imagino que isso se deva porque o Perl do Windows (como ja havia dito o Stanislaw) subistitui o CR por CRLF, isso deveria ser contornado usando binmode no filehandle.
No caso deste modulo, isso já é feito:
99 open my $wfh, '>', $file or Carp::croak $file, " $!";
100 binmode $wfh;
ref: https://metacpan.org/source/XAICRON/WWW-YouTube-Download-0.41/lib/WWW/YouTube/Download.pm
Não entendo portanto porque o arquivo vem com problemas.
Sera que se eu abrir o arquivo em modo binario e trocar todos CRLF por CR funcionaria?? Se sim como fazer isso??
_______________________________________________
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
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20121029/6b4f80f3/attachment.html>
Mais detalhes sobre a lista de discussão Rio-pm