[Rio-pm] print() on closed filehandle
Aureliano Guedes
guedes_1000 em hotmail.com
Domingo Outubro 21 11:38:34 PDT 2012
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";
}
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20121021/16bde2e2/attachment.html>
Mais detalhes sobre a lista de discussão Rio-pm