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: [email protected] To: [email protected] 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 <[email protected]> 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 [email protected] http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/rio-pm
_______________________________________________ Rio-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/rio-pm
